propsiseation isrequired没有在reactjs中显示警告

时间:2016-12-10 23:48:31

标签: reactjs

我是新人的反应。我正在尝试验证道具。根据文档,如果删除isRequired值,它将在开发模式下显示警告。

import React from 'react';

export default class PropsValidation extends React.Component{
    render(){
        return(
            <div>
                <h1>Props Validation</h1>
                <p>{this.props.propArray}</p>
                <p>{this.props.propBoolean}</p>
                <p>{this.props.propFunction}</p>
            </div>
        )
    }
}

PropsValidation.defaultProps = {
    propArray:[1,2,3],
    propBoolean:false,
    propFunction:function(e){return e}
}

PropsValidation.propsTypes = {
    propArray: React.PropTypes.array.isRequired,
    propBool: React.PropTypes.bool.isRequired,
    propFunction: React.PropTypes.function
}

2 个答案:

答案 0 :(得分:0)

我还没有完全理解你的问题,但是你会得到一个警告,因为propFunction: React.PropTypes.function它应该是propFunction: React.PropTypes.func

对于作为函数的proptype,

func而不是function做出反应

https://facebook.github.io/react/docs/typechecking-with-proptypes.html

该文章列出了所有可用的proptype

答案 1 :(得分:0)

如果您的道具已定义为必需,未设置并且没有默认值,您将收到警告。如果存在默认值,则prop不为空,因此isRequired的验证通过。