我正在寻找一种在 redux 中为实体/数据存储 isFetching 的通用方式。目前我使用normalizr并将我的所有实体数据存储在实体哈希中。例如
{
people: { ... },
orders: { ... }
}
我正在考虑在每个实体(即人员、订单...)对象上定义一个属性,以指定是否正在获取数据。唯一的问题是,如果您执行 Object.keys 之类的操作,您将在数组中返回一个 ids + isFetching 列表。为了克服这个问题,我想将属性设置为不可枚举。
我的数据相当复杂,我不只是有 2 个实体,我只是为示例进行了简化。我正在寻找一种可以在我的代码库中长期存在的解决方案。
这是一个好的解决方案吗?我不想仅仅为了存储元数据而创建一个新对象(尽管这是一个潜在的解决方案)。有更好或更常见的方法吗?
我知道这有点固执己见,但是 redux 问题指南将我指向 stackoverflow ...
注意我知道 Object.defineProperty 的兼容性问题。这是一个内部应用程序,每个人都使用最新版本的 chrome。
更新
redux store 中的潜在实现
let initialState = {
entities: {
customers: null,
orders: null
}
};
Object.defineProperty(initialState.entities.customers,
'isFetching',
{
value: false,
writable: true,
enumerable: false
});
Object.defineProperty(initialState.entities.orders,
'isFetching',
{
value: false,
writable: true,
enumerable: false
});
export default initialState;