得到“道具A在B中标记为必需,但其值为'undefined'。”即使未按要求设置

时间:2019-01-14 19:52:47

标签: reactjs react-proptypes

所以我曾经根据需要设置一些道具。然后我更改了代码,得到了上述错误。进入组件并删除了.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),
};

再次检查我是否还保存了所有相关文件。此行为的可能原因是什么?我在哪里可以尝试调试它?

2 个答案:

答案 0 :(得分:0)

您应该使用PropTypes.object而不是PropTypes.shape(PropTypes.object)

答案 1 :(得分:0)

为了避免掉毛错误,我将propTypes改为了:

ArtistCard.propTypes = {
  artist: PropTypes.shape({}),
  trackMap: PropTypes.shape({}),
};