javascript - 键是 ID 的对象的 PropType
问题描述
我正在将我的 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,
推荐阅读
- python - 如何创建所有单词的字典,而不是在 Python 中逐个字符串?
- javascript - 删除表格中 Google 图表之间的空格
- javascript - JavaScript更改默认文件名?
- mysql - 从表中查找过去一年中每周至少完成一项活动的所有用户
- c++ - Delphi 和 c++ 结构
- c++ - C++ curl 怎么用?
- node.js - Nodejs Express 渲染布局:false,但它仍然成立
- linux - 蓝牙 Linux ARM 文件传输
- ios - 按钮 heightConstraint 打破自动布局
- c# - 转换为 Web 应用程序后出现错误 CS0102