如何在React

时间:2017-01-04 21:29:41

标签: reactjs react-proptypes

我目前正在对现有的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验证器?我真的很想避免这种情况,特别是因为我觉得我的方法应该有效。

0 个答案:

没有答案