PropTypes

PropTypes: 实例的校验

class Model {}

function TypeComp(props) {
    return <div>{props.modelProp.name}</div>
}

TypeCompo.defaultProps = {
    modelProp:new Model()    
}

TypeComp.propsType = {
    modelProp: PropTypes.instanceOf(Model)
}

上面的modelProp必须是Model的实例。

PropTypes: 具体值的校验

function TypeComp(props) {
    return <div></div>
}
TypeCompo.defaultProps = {

}

TypeComp.propsType = {
    typeProps: PropTypes.oneOf(['News', 'Photos'])
}

这里typeProps值必须是NewsPhotos中的一个。

PropsTypes: 多个类型的校验

optProp的类型可以是string,numberModel实例。

PropTypes: Shape and Types validation

某种类型的数组

arrayOfProp必须是一个数组类型,并且里面的值是数字类型。如果传递下面这样的,会抛出错误:

某种类型的对象

这里的objOfProp必须是一个对象,并且对象的属性值必须是一个数字类型。

呈现特定的塑造

所以我们必须传递这样的东西:

如果像下面这样传递,将抛出错误:

或者:

PropTypes: 传递任何东西

PropTypes: 必须要的验证

PropTypes: 自定义验证

参考: 官方文档

原文:Understanding React PropTypes - Type-Checking in React

Last updated