我正在将 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/