收到警告:propType 失败:无效的 `array` 类型的 prop 在 React 中预期为 `object`

Getting Warning: Failed propType: Invalid prop of type `array` expected `object` in React

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

警告:道具类型失败:提供给 myComparray 类型的无效道具 dataSet.headings,应为 object

我有一个变量data

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

并在 react 渲染函数中使用它

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

MyComp 组件中我有这个 propTypes 声明

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

我不确定我在这里做错了什么。任何人都可以解释一下吗?

先谢谢你

objectOf是表示一个对象,其属性个值是指定类型,即所有字符串或数字。

但是,您的数据只是一个包含一个 属性、headings 的对象,其值是一个字符串数组。

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

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

那里不需要 PropTypes.objectof

相反,这样做:

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

在标签元素中传递道具,如下代码所示(renderTabBar)

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