我试图在 oneOf() 中嵌套 shape() 一个 arrayOf() 的列表,但我收到一个错误。



是否可以将 oneOf() 传递给 shape() 的列表?

tabs: React.PropTypes.arrayOf(
  React.PropTypes.oneOf([
    React.PropTypes.shape({
      id: React.PropTypes.string.isRequired,
      content: React.PropTypes.node.isRequired,
    }),
    React.PropTypes.shape({
      id: React.PropTypes.string.isRequired,
      params: React.PropTypes.object.isRequired,
    }),
  ]),
),

更新!找到了一个 answer here ,看起来我应该改用 OneofType 。
tabs: React.PropTypes.arrayOf(
  React.PropTypes.oneOfType([
    React.PropTypes.shape({
      id: React.PropTypes.string.isRequired,
      content: React.PropTypes.node.isRequired,
    }),
    React.PropTypes.shape({
      id: React.PropTypes.string.isRequired,
      params: React.PropTypes.object.isRequired,
    }),
  ]),
),

最佳答案

我决定发布我对问题的更新作为答案。

我找到了答案 here 。我应该改用 OneofType。

tabs: React.PropTypes.arrayOf(
  React.PropTypes.oneOfType([
    React.PropTypes.shape({
      id: React.PropTypes.string.isRequired,
      content: React.PropTypes.node.isRequired,
    }),
    React.PropTypes.shape({
      id: React.PropTypes.string.isRequired,
      params: React.PropTypes.object.isRequired,
    }),
  ]),
),

关于reactjs - React PropTypes arrayOf oneOf 形状 A 或形状 B,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43125319/

10-15 14:50