我有一个组件,我希望接受另一个组件作为道具,然后进行渲染。我希望传递的组件是可选的,并且
在这种情况下不呈现任何内容。
以下代码可以完美运行:
const Component = ({ Inner }) => (
<div style={{ borderStyle: "solid" }}>
<Inner />
</div>
);
Component.propTypes = {
Inner: PropTypes.element
};
Component.defaultProps = {
Inner: () => null
};
但是,在页面的第一次加载中,prop-types抱怨:
警告:prop类型失败:提供 给Inner的类型无效的prop ,应该是单个ReactElement。function
Component
我当前的解决方案是重新定义propTypeasPropTypes.oneOfType([PropTypes.element, PropTypes.func]),但这似乎完全不正确。
我应该propType或defaultProp实际上是什么?
SSCCE在沙箱中。
这个问题类似于If元素的proptype是默认值吗?,但这已经接受了一个无效的答案,
即使它确实有效,对我也不是什么帮助,因为我使用的是本机反应。我没有以与本机反应有关的方式来构架这个问题,就像我说过的那样,我的示例工作正常,这只是prop-types一个大问题。
使用elementType的类型将解决您的问题。
Component.propTypes = {
Inner: PropTypes.elementType
};
由于您的道具是反应组件,因此我们使用elementType。如果您曾经打开过prop-types的源代码,则可以在其中找到。
什么是REST API响应结构和布局的最佳实践? Scrath示例: 成功回应: 失败响应:
问题内容: 我需要导入课程。包含在Maven项目中的正确依赖项是什么?我正在尝试,但是没有运气(这是pom,而不是jar)。 ps。到目前为止,我发现的唯一解决方法是:(来自Maven Central)。 问题答案: 在ActiveMQ以及Qpid JMS等其他项目中,我们从Apache Geronimo JAR引入了JMS规范类,在此依赖项中提供了1.1 API: 对于JMS 2 API,您需要
我正在学习使用JUnit。我编写了一个生成严格小于xx的数字的方法。 我想用JUnit测试它。不确定使用哪个断言是基于xX的,我也没有看到任何比较断言。
问题内容: 我正在创建一个小型Java Jpanel游戏,其中应该有一个火箭,它通过箭头上下移动,并通过太空射击。 触发方法应按以下方式工作:按下空格键,东西触发并在屏幕上移动,然后当它碰到某个x时,它就会消失。此外,您只能发射一次,直到另一颗子弹消失为止。 我不知道我在做什么错。首先,在我的代码启动后,您会看到子弹在屏幕上飞舞。 2,子弹没有消失。 第三,即使其他子弹仍然可见,它也允许我再次开火
短版 Spotify Android应用程序在最近的一个版本中引入了一个“设备广播状态”开关,我想在我的应用程序中接收那些广播。有哪些广播可用,我应该如何配置我的广播接收器? 我从Spotify应用程序本身中使用了设备广播状态开关,我很高兴该开关取消/激活了这些广播事件。 我现在遇到的问题是,这些信息似乎只是零星地发送。我接收playstatechanged事件(播放、暂停、下一个、上一个),但它
问题内容: 作业:剪刀石头布游戏。 我创建了一个枚举: 从中我想比较各种价值观来决定谁是计算机还是人。设置值就可以了,并且比较也可以正常工作(纸张覆盖岩石,岩石压碎剪刀,剪刀切碎纸张)。但是,我不能束手无策。只要有平局,该用户即被宣布为获胜者。 唉唉......废话......这将澄清:是一个具有价值,或。我无法用比较来,正如你可以看到下面,是铸造类型从我的。 我猜这是一个不等于或无法匹配的问题,