首页 > 解决方案 > 得到“道具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),
};

仔细检查我是否也保存了所有相关文件。这种行为的可能原因是什么?我在哪里可以尝试调试它?

标签: reactjsreact-proptypes

解决方案


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


推荐阅读