如何验证应接受组件的反应道具

时间:2019-01-23 08:28:40

标签: reactjs react-proptypes

假设我希望我的组件接受React.Component类型的属性

const MyComponent = ({ child: Child }) => 
  <div>
    <Child {...childProps} />
  </div>

MyComponent.propTypes = {
  child: PropTypes.[???].isRequired
}

React.Component中是否可以使用任何prop-types验证器?

  

编辑:我尝试使用PropTypes.element,但出现错误   Failed prop type: Invalid prop 'el' of type 'function' supplied to 'Test', expected a single ReactElement.

     

https://codesandbox.io/s/qk0jyq13yj

     

edit2 :我刚刚在material-ui they have custom validation

中找到了

1 个答案:

答案 0 :(得分:1)

使用element属性

MyComponent.propTypes = {
  child: PropTypes.element.isRequired
}

instanceOf

MyComponent.propTypes = {
  child: PropTypes.instanceOf(ReactComponentName).isRequired
}