使用PropTypes进行类型检查
在React 15.5之前的版本中,PropTypes是React内置的类型检查功能,但目前这个功能已经被独立了出来,形成了一个新的名为prop-types
的库。这个库虽然功能不及Flow或者Typescript可以这整个应用进行强制的类型约束,但是prop-types
还可以可以完成对于组件的props
属性的类型检查的。
要在应用中使用prop-types
十分容易,只需要安装这个库即可。
npm install prop-types
yarn add prop-types
PropTypes主要是通过在组件的.propTypes
属性上添加一系列的验证器来确保组件所收到的数据类型是有效的。例如以下使用示例。
import PropTypes from 'prop-types';
class Greeting extends React.Component {
render() {
return <div>Nice day, {this.props.name}.</div>;
}
}
Greeting.propTypes = {
name: PropTypes.string
};
示例中虽然是使用的基于class
的组件,但是抽动实际使用中,PropTypes并没有限定组件类型,函数组件以及高阶组件等都可以使用PropTypes来验证内容类型。但是在使用函数组件或者高阶组件的时候,不能直接使用export default
导出组件,而是需要在定义.propTypes
属性之后再导出组件。例如以下示例。
import PropTypes from 'prop-types';
function Greeting({ name }) {
retrun(<div>Nice day, {name}.</div>);
}
Greeting.propTypes = {
name: PropTypes.string
};
export default Greeting;