此文章是翻译Typechecking With PropTypes这篇React(版本v15.4.0)官方文档。
Typechecking With PropTypes
随着你的应用的增大, 你可以通过类型检测(typechecking)获取许多bugs。对于一些应用,你可以使用JavaScript 后缀例如[Flow] ()或者TypeScript 去检测你的整个应用。但是即使你不使用这些,在React 有一些内置的类型检测能力。为了能够在component 的props 上运行类型检测,你可以将其赋于propTypes
属性(property):
1 | class Greeting extends Component { |
React.PropTypes
导出一系列的验证器(validator)可以用来确认你收到有效的数据。在这个例子中,我们使用React.PropTypes.string
。当一个无效的值被提供给prop,一个警告就会在JavaScript console 中显示。为了性能原因,propTypes
只在开发模式进行验证。
React.PropTypes
这有一个例子展示如何使用不同验证器:
1 | MyComponent.propTypes = { |
Requiring Single Children
使用React.PropTypes.element
你可以配置仅允许单个子节点传给component:
1 | class MyComponent extends Component { |
Default Prop Values
通过为你的props
与一个特殊的defaultProps
属性来定义一个默认值:
1 | class Greeting extends Component { |
这个defaultProps
将会确认这个this.props.name
有值即使它没有被父component 配置。这个propType
将在defaultProps
被解析之后进行类型检测,所以类型检测也可用在defaultProps
上。