我目前正在对现有的React代码库进行eslint升级。作为更新的Eslint规则的一部分,我们需要开始更具体地了解我们的PropTypes。 (不要使用PropTypes.object,PropTypess.array)
我无法重构,因为它超出了我现在正在做的范围。
目前有一个数组数组作为prop传递给生成表的组件。
数据如下:
[ [ 'firstName', 'lastName', 35, 'M', 1, '' ],
[ 'firstName', 'lastName', 34, 'F', 1, '' ] ]
理想情况下,我会将此更改为一个对象数组,我可以在其中验证每个键:单独的值,但这段数据非常复杂,所以我无法更改它。
这就是我想要做的事情:
tableData: PropTypes.arrayOf(
PropTypes.arrayOf(
PropTypes.oneOfType([
PropTypes.string,
PropTypes.number
])
)
)
然而,反应一直给我这个错误:
Warning: Failed prop type: Invalid prop 'tableData[0][2]' supplied to 'MyComponent'
我也尝试过这样的事情:
tableData: PropTypes.arrayOf(
PropTypes.arrayOf(
PropTypes.string,
PropTypes.string,
PropTypes.number,
PropTypes.string,
PropTypes.number,
PropTypes.string
)
)
但这也行不通。
我是否需要创建自己的PropType验证器?我真的很想避免这种情况,特别是因为我觉得我的方法应该有效。