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

获取警告:propType失败:React中的'array'类型的无效prop应为'object'

苗阳文
2023-03-14

我当前在控制台中收到此警告

警告:失败的道具类型:无效的道具数据集。提供给myComp数组类型的标题,应为对象

我有一个变量数据

let data = {
  headings: ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"]
}

并在react render函数中使用它

<MyComp dataSet={data}></MyComp>

MyComp组件中,我有这个PropTypes声明

MyComp.propTypes = {
  dataSet: PropTypes.objectOf(
    PropTypes.shape({
      headings: PropTypes.arrayOf(
        PropTypes.string
      )
    })
  )
};

我不确定我做错了什么。有没有人能给点光?

提前谢谢你


共有3个答案

鲁丰
2023-03-14

在选项卡中元素传递道具,如下所示代码(renderTabBar)

js prettyprint-override">const Health_record = (props) => {
 return (
          <Tabs renderTabBar={renderTabBar} >

              <Tab heading="tab1">
            
              </Tab>
                <Tab heading="tab1">

              </Tab>
          <Tabs>
      )    
}

const renderTabBar = (props) => {
    props.tabStyle = Object.create(props.tabStyle);
    return <ScrollableTab />;
};
王棋
2023-03-14

objectOf表示具有指定类型属性值的对象,即所有字符串或数字。

然而,您的数据只是一个具有一个属性的对象,标题,其值是一个字符串数组。

MyComp.propTypes = {
  dataSet: PropTypes.shape({
    headings: PropTypes.arrayOf(
      PropTypes.string
    )
  })
};
慕冠宇
2023-03-14

您的数据集实际上比您的propTypes定义要简单得多。

您不需要属性类型。objectof在那里。

相反,这样做:

MyComp.propTypes = {
  dataSet: PropTypes.shape({
    headings: PropTypes.arrayOf(PropTypes.string)
  })
};
 类似资料: