美文网首页
dva中出现prop-types

dva中出现prop-types

作者: 小m_up | 来源:发表于2018-03-08 15:11 被阅读292次

    近期刚开始学习dva,然后在所有的实例中的component组件中都出现了这么一些代码,例如App组件中最后一行是这样的:

    App.propTypes = {
         item:PropTypes.object
    }
    

    刚开始还以为是state中有啥那么这里就必须有啥,但是有一次没有写竟然没有任何影响,那么这个到底有什么用呢?
    打开package.json,你会发现有这么一行:

    "prop-types": "^15.6.0"
    

    这是一个类型检测库,记不记得之前react也有个React.PropTypes,但是自 React v15.5 起已弃用,所以现在用的就是prop-types

    那么就来说一下上段代码是什么意思:
    其实很简单,就是类型检测,检测item属性是否是object类型,如果你传入的数据不是object类型的话,那么控制台就会报错,这就弥补了JavaScript的不足之处,因为要是不写这个的话,你不小心传入的值类型不符合,那么你控制台将没有任何错误,但是你的运行结果却不是你想要的

    然而有的时候你会发现还有这种写法:

    App.propTypes = {
         item:PropTypes.object.isRequired
    }
    

    多了一个isRequired,这又是啥意思呢?
    其实是通过isRequired检测props中某个必要的属性,即如果该属性不存在就报错,就比如刚才这个例子,当没有加isRequired的时候,如果你根本没有传入item属性,那么代码也不会报错,但是如果你加了isRequired,控制台就报错啦,所以使用isRequired还是很有必要的

    每天进步一点点,fighting

    相关文章

      网友评论

          本文标题:dva中出现prop-types

          本文链接:https://www.haomeiwen.com/subject/rqxsfftx.html