React中的PropTypes详解

Posted 鍒樻爧

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了React中的PropTypes详解相关的知识,希望对你有一定的参考价值。

propTypes用来规范props必须满足的类型,如果验证不通过将会有warn提示。

React PropTypes的种类有:

React.PropTypes.array           // 队列

React.PropTypes.bool.isRequired // Boolean 且必须

React.PropTypes.func            // 函数

React.PropTypes.number          // 数字

React.PropTypes.object          // 对象

React.PropTypes.string          // 字符串

React.PropTypes.node            // 任何类型的: numbers, strings, elements 或者数组

React.PropTypes.element         // React 元素

React.PropTypes.instanceOf(XXX) // 某种XXX类型的对象

React.PropTypes.oneOf([‘foo‘, ‘bar‘]) // 其中的一个字符串

React.PropTypes.oneOfType([React.PropTypes.string, React.PropTypes.array]) // 其中的一种类型

React.PropTypes.arrayOf(React.PropTypes.string)  // 某种类型的数组(字符串)

React.PropTypes.objectOf(React.PropTypes.string) // 元素是字符串的对象

React.PropTypes.shape({                          // 是否符合指定格式的对象

  color: React.PropTypes.string,
  fontSize: React.PropTypes.number
});
React.PropTypes.any.isRequired  // 可以是任何格式,且必要。


// 自定义格式,不符合的时候放回Error

// 不要用`console.warn` 或者 throw, 因为它在`oneOfType` 的情况下无效


customPropType: function(props, propName, componentName) {
  if (!/^[0-9]/.test(props[propName])) {
    return new Error(‘Validation failed!‘);
  }
}

  

以上是关于React中的PropTypes详解的主要内容,如果未能解决你的问题,请参考以下文章

如何验证 React.propTypes 中的输入以获取自定义函数的输入?

PropTypes使用

[react] 使用PropTypes和Flow有什么区别?

react+propTypes

React组件属性类型(propTypes)

React linter airbnb proptypes 数组