dva中出现prop-types

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容