React.PropTypes.element不接受React.DOM.input等

时间:2015-07-20 08:21:18

标签: reactjs

Concider this:

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)`.

我是否错过了解文档https://facebook.github.io/react/docs/reusable-components.htmlReact.DOM.input不是"元素"?

(React版本0.13.3)

1 个答案:

答案 0 :(得分:2)

React.DOM.input不是ReactElement,而是React类。

要简单地修复警告/错误消息,您必须更改

propTypes:
    comp: React.PropTypes.element

propTypes:
comp: React.PropTypes.func

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

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