dva中出现prop-types

2018-03-08  本文已影响292人  小m_up

近期刚开始学习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

上一篇下一篇

猜你喜欢

热点阅读