当前位置: 首页 > 知识库问答 >
问题:

反应警告:失败的道具类型:提供的“Object”类型的道具无效

景成和
2023-03-14

我收到警告“警告:失败的道具类型:提供给的类型为对象的无效道具,应为绑定检查类型的实例”

这是我的道具类型:

FieldTable.propTypes = {
    rawData: PropTypes.instanceOf(PropTypes.object).isRequired,
    percentCols: PropTypes.arrayOf(PropTypes.string).isRequired,
    specialColNames: PropTypes.instanceOf(PropTypes.object).isRequired,
    scenarioHeaders: PropTypes.instanceOf(PropTypes.object),
    headerHierarchies: PropTypes.arrayOf(PropTypes.object).isRequired
};

这个绑定检查类型指的是什么,我应该如何验证我的对象道具来避免这个警告?对象本身是从异步调用中接收的JSON对象,并在其他组件中生成。例如,rawData对象来自一个组件,该组件允许用户上传excel电子表格,然后将电子表格解析为JSON对象。不知道这是不是有用的信息。

感谢您的帮助,特别是这个问题可能引起的任何更深入的讨论。


共有2个答案

羊舌承天
2023-03-14

要检查普通JS对象的类型,只需使用:

plainObj: PropTypes.object.isRequired,
姬烨磊
2023-03-14

对于启用了eslint的反应/禁止道具类型时的对象,请尝试使用形状:

plainObj: PropTypes.shape({ subProp: PropTypes.string })

 类似资料: