2015-07-20 24 views
0

海外商品会有这样的:React.PropTypes.element不接受React.DOM.input等

MyComponent = React.createFactory React.createClass 
    displayName: 'MyComponent' 
    propTypes: 
    comp: React.PropTypes.element 

    render: -> 
    div {}, 
     this.props.comp {id: 'dummy1'} 

AppView = React.createClass 
    render: -> 
    MyComponent {comp: React.DOM.input} 

这引发以下错误:

Warning: Failed propType: Invalid prop `comp` supplied to `MyComponent`, 
expected a ReactElement. Check the render method of `Radium(AppView)`. 

我是missunderstanding文档https://facebook.github.io/react/docs/reusable-components.htmlReact.DOM.input不是一个“元素”?

(阵营版本0.13.3)

+0

'React.DOM.input'是一个DOM元素,而不是一个反应组件。 – zerkms

+1

这并不回答你的问题,但它可以解决你的问题:你可以尝试使'React.DOM.input'成为'MyComponent'的一个子节点。 – Conrad

回答

2

React.DOM.input不是ReactElement,而是一个阵营类。

要简单地修复您的警告/错误消息,你就必须改变

propTypes: 
    comp: React.PropTypes.element 

propTypes: 
comp: React.PropTypes.func 

因为typeof React.DOM.input是一类,又名。 function

要创建一个React.PropTypes.element您必须致电React.DOM.input