我过去使用类似流的类型检查,但现在我必须使用道具类型,我遇到了以下问题
失败的道具类型:类型为
string
的道具rowConfig.uniqueKey
无效提供给Table
的是预期的object
。
在流类型中,我进行了以下
type Props = {
columns: {
[key: string]: {
key: string,
label?: string,
}
},
rowConfig?: {
uniqueKey?: string,
css?: string,
onClick?: Function
},
}
对于道具类型,我采用了以下方式,但我已经克服了错误。为什么会这样?因为我使用了PropTypes.string,它仍然需要一个对象。
Table.propTypes = {
columns : PropTypes.objectOf(
PropTypes.shape({
key : PropTypes.string.isRequired,
label : PropTypes.string,
})
),
rowConfig : PropTypes.objectOf(
PropTypes.shape({
uniqueKey: PropTypes.string,
css : PropTypes.string,
onClick : PropTypes.function
})
),
};
试试看:
Table.propTypes = {
columns : PropTypes.shape({
key: PropTypes.string.isRequired,
label: PropTypes.string,
}),
rowConfig : PropTypes.shape({
uniqueKey: PropTypes.string,
css : PropTypes.string,
onClick : PropTypes.function
})
};
对不起。代表级别不够高,无法留下评论。您的组件名为Table?你能提供更多信息吗?(状态等(您可能需要删除两者上的Proptype.objectof。