reactjs - 得到“道具A在B中被标记为需要,但它的价值是'未定义'。” 即使没有按要求设置
问题描述
所以我曾经根据需要设置一些道具。然后我改变了我的代码,得到了上面提到的错误。转到组件并删除.isRequired
并添加了默认道具......我仍然收到错误???
我的项目还是有点小,所以我很确定我没有以某种奇怪的方式复制组件。认为这可能是一些奇怪的缓存机制,但即使我在隐身模式下运行,问题仍然存在。我还重新启动了应用程序,以防在 WebPack 重新编译项目后 prop 类型以某种方式持续存在。
错误:
Warning: Failed prop type: The prop 'artist.isRequired' is marked as required in 'ArtistCard', but its value is 'undefined'.
和
Warning: Failed prop type: The prop 'trackMap.isRequired' is marked as required in 'ArtistCard', but its value is 'undefined'.
我的道具类型在 ArtistCard 中的外观:
ArtistCard.defaultProps = {
artist: {},
trackMap: {},
};
ArtistCard.propTypes = {
artist: PropTypes.shape(PropTypes.object),
trackMap: PropTypes.shape(PropTypes.object),
};
仔细检查我是否也保存了所有相关文件。这种行为的可能原因是什么?我在哪里可以尝试调试它?
解决方案
你应该使用PropTypes.object
而不是PropTypes.shape(PropTypes.object)
推荐阅读
- java - 使用 collectors.groupingby 修改过滤器方法
- scala - 类型更高的 lambda
- image - 我想在对多个页面进行图像抓取后下载
- security - 将 ngrok 用于 RDP - 安全性
- ruby - Ruby - telnet 行为不一致
- java - 通过 Java 代码在另一个 shell 脚本中执行 shell 脚本
- python - 使用 pyspark 不进行聚合的枢轴函数
- vbscript - 如何在经典 ASP 中将字符串转换为字节数组
- java - 在wiremock响应中编码特殊字符
- javascript - 选择在 ajax 自动完成中显示未定义的部分