javascript - 对象的 PropType,其中键是 ID

标签 javascript reactjs react-proptypes

我正在将 redux 存储重构为对象,其中键是 ID 而不是数组。示例:

旧:

const orders = [
  { id: a, user: 1, items: ['apple','orange'] },
];

新:

const orders = {
  a: { user: 1, items: ['apple','orange'] },
};

以前为订单指定 PropTypes 很容易,但现在不知道如何更改它,因为它是动态键的对象,但我想验证每个单独的订单。

order: PropTypes.arrayOf({
  PropTypes.shape({
    id: PropTypes.string.isRequired,
    user: PropTypes.number.isRequired,
    items: PropTypes.arrayOf(PropTypes.string).isRequired,
  }).isRequired,
}).isRequired,

如何更改我的 PropTypes 以匹配新结构?

最佳答案

来自 prop-types 文档

// An object with property values of a certain type
  optionalObjectOf: PropTypes.objectOf(PropTypes.number),

所以这应该有效

orders: PropTypes.objectOf(
  PropTypes.shape({
    user: PropTypes.number.isRequired,
    items: PropTypes.arrayOf(PropTypes.string).isRequired,
  }).isRequired,
).isRequired,

关于javascript - 对象的 PropType,其中键是 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59643225/

相关文章:

javascript - 这个函数什么时候获取这个参数?

javascript - ReactJS:如何更改对象数组中特定字段的值?

reactjs - Apollo 订阅 : Apollo Graphql is receiving updates on Playground but not on client

javascript - 如何将数据从一个组件实时传递到另一个组件?

reactjs - 如何解决 "React.PropTypes.shape is not a function"?

javascript - selectedIndex 是未定义的 JavaScript

javascript - 如何在运行 onbeforeunload 后调用注销代码

javascript - 使用 Javascript 打印定义的内容

javascript - React 中的未知 Prop,如何创建新的 html 属性

javascript - react native MapView : undefined is not an object