我有一个组件,我希望接受另一个组件作为props,并渲染它。我希望传递的组件是可选的,并且在这种情况下不渲染任何内容。
以下代码完美运行:
const Component = ({ Inner }) => (
<div style={{ borderStyle: "solid" }}>
<Inner />
</div>
);
Component.propTypes = {
Inner: PropTypes.element
};
Component.defaultProps = {
Inner: () => null
};
但是,在页面的第一次加载时,prop-types
抱怨:
警告:无法丙类型:无效支柱
Inner
型的function
供给Component
,预期单个ReactElement。
我目前的解决方案是重新定义propType
as PropTypes.oneOfType([PropTypes.element, PropTypes.func])
,但这似乎完全不正确。
我的propType
或defaultProp
实际上应该是什么?
这个问题类似于If proptype of element 的默认值是什么?,但这已经接受了一个不起作用的答案,即使它确实起作用了,对我来说也没有多大帮助,因为我正在真正使用 react native。我没有以与本机react有关的方式来构建问题,就像我说的那样,我的示例有效,这只是prop-types
一个大坏蛋。