鉴于这个人为的例子,最佳定义是什么? componentType什么?
const componentType = PropTypes.oneOfType([
PropTypes.shape({render: PropTypes.func.isRequired}), // React.createClass / React.Component ...better way to describe?
PropTypes.func, // Stateless function
// others?
]);
const Selector = React.createClass({
propTypes: {
components: PropTypes.arrayOf(componentType).isRequired,
index: PropTypes.number.isRequired,
},
render() {
const Component = this.props.components[this.props.index];
return (
<Component />
);
}
});
Run Code Online (Sandbox Code Playgroud)
PropTypes.node不是我在找; 它的用法如下:
<Selector components={[<ThingA />, <ThingB />]} />
Run Code Online (Sandbox Code Playgroud)
而我想要的东西看起来像:
<Selector components={[ThingA, ThingB]} />
Run Code Online (Sandbox Code Playgroud)
我想传递类型,而不是实例.
我转发到github并得到了这个答案.所以它应该是:
const componentType = PropTypes.oneOfType([PropTypes.string, PropTypes.func])
Run Code Online (Sandbox Code Playgroud)
func涵盖"经典"反应组件,ES6类和无状态功能组件的类型.string涵盖原生元素案例(例如"div").
这似乎是最新的:/sf/answers/3904918321/
太长了;
const propTypes = {
component: PropTypes.elementType,
requiredComponent: PropTypes.elementType.isRequired,
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2016 次 |
| 最近记录: |