我定义了一个静态数组,它指定了支持的输入字段类型。我让它们变得静止,因为1)它们永远不会改变,2)我想在不同的组件中使用它们。
这就是我所拥有的。
Field = React.createClass({
propTypes: {
type: React.PropTypes.oneOf(Field.types),
},
statics: {
types: ['text', 'url']
},
render() { /* ... */ }
}
我在浏览器控制台中遇到的错误是:
Uncaught ReferenceError: Field is not defined
为什么访问propTypes
内的静态字段不起作用?有更好的解决方案吗?
答案 0 :(得分:0)
React接受statics
属性并在生成的组件类中定义属性,因此在评估propTypes
时它们尚未可用。最简单的解决方案就是提取它们;您仍然可以将它们放在statics
上以供其他组件使用:
var fieldTypes= ['text', 'url'];
var Field = React.createClass({
propTypes: {
type: React.PropTypes.oneOf(fieldTypes),
},
statics: {
types: fieldTypes
},
render() { /* ... */ }
});