收到警告:propType 失败:无效的 `array` 类型的 prop 在 React 中预期为 `object`
Getting Warning: Failed propType: Invalid prop of type `array` expected `object` in React
我目前在控制台中收到此警告
警告:道具类型失败:提供给 myComp
的 array
类型的无效道具 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 />;
};
我目前在控制台中收到此警告
警告:道具类型失败:提供给 myComp
的 array
类型的无效道具 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 />;
};