React中的类型检查:prop-types 包
1 | import PropTypes from 'prop-types'; |
编写组件
1 | import PropTypes from 'prop-types'; |
PropTypes
提供一系列验证器,可用于确保组件接收到的数据类型是有效的。在本例中, 我们使用了 PropTypes.string
。当传入的 prop
值类型不正确时,JavaScript 控制台将会显示警告。出于性能方面的考虑,propTypes
仅在开发模式下进行检查。
propTypes提供了使用不同验证器的例子
1 | import PropTypes from 'prop-types'; |
限制单个元素
可以通过PropsTypes.element来确保传递组件的children中只包含一个元素。
1 | import PropTypes from 'prop-types'; |
默认prop值
您可以通过配置特定的 defaultProps
属性来定义 props
的默认值:
1 | class Greeting extends React.Component { |
如果你正在使用像 transform-class-properties 的 Babel 转换工具,你也可以在 React 组件类中声明 defaultProps
作为静态属性。此语法提案还没有最终确定,需要进行编译后才能在浏览器中运行。要了解更多信息,请查阅 class fields proposal。
1 | class Greeting extends React.Component { |
defaultProps
用于确保 this.props.name
在父组件没有指定其值时,有一个默认值。propTypes
类型检查发生在 defaultProps
赋值后,所以类型检查也适用于 defaultProps
。