写独立的React.PropTypes.any.isRequired

时间:2017-06-09 17:19:49

标签: reactjs react-proptypes

PropTypes正在从主React库中删除。我的项目所需要的只是React.PropTypes.any.isRequired,而不是别的。

是否可以将此验证器编写为独立函数,以便我可以避免添加新的依赖项? React期望从这个功能中得到什么?

谢谢!

2 个答案:

答案 0 :(得分:1)

查看docs,验证器只不过是:

customProp: function(props, propName, componentName) {
  if (!/matchme/.test(props[propName])) {
    return new Error(
      'Invalid prop `' + propName + '` supplied to' +
      ' `' + componentName + '`. Validation failed.'
    );
  }
},

因此,如果您检查null,那就是模拟Any.isRequired所需的一切。

答案 1 :(得分:1)

isRequired检查支柱是undefined还是null并在其中任何一个匹配时抛出错误。在这里参考isRequired的来源: https://github.com/facebook/prop-types/blob/master/factoryWithTypeCheckers.js#L191