所以我曾经根据需要设置一些道具。然后我更改了代码,得到了上述错误。进入组件并删除了.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),
};
再次检查我是否还保存了所有相关文件。此行为的可能原因是什么?我在哪里可以尝试调试它?
答案 0 :(得分:0)
您应该使用PropTypes.object
而不是PropTypes.shape(PropTypes.object)
答案 1 :(得分:0)
为了避免掉毛错误,我将propTypes改为了:
ArtistCard.propTypes = {
artist: PropTypes.shape({}),
trackMap: PropTypes.shape({}),
};