反应警告:道具类型失败:提供了对象类型无效的道具

时间:2018-10-17 22:33:19

标签: reactjs eslint react-props react-proptypes eslint-config-airbnb

我收到警告“警告:失败的道具类型:提供给Object的预期实例的bound checkType类型的无效道具。”

这是我的原型:

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
};

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

感谢您的协助,尤其是这个问题可能引起的更深入的讨论。

2 个答案:

答案 0 :(得分:3)

对于启用了react/forbid-prop-types eslint的对象,请尝试使用形状:

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

答案 1 :(得分:0)

要检查普通JS对象的原型,您应该只使用:

plainObj: PropTypes.object.isRequired,