我正在尋找創建一個通用的方式來存儲isFetching實體/數據在REDX。目前我使用normalizr並將所有實體數據存儲在實體哈希中。例如我應該如何在我的redux商店中存儲isFetching/isLoading數據?
{
people: { ... },
orders: { ... }
}
我在每個實體思維defining a property(即人,訂單...)對象指定數據是否正被取出。唯一的問題是,如果你做Object.keys之類的事情,你會在你的數組中返回一個ids + isFetching列表。爲了克服這個問題,我想將屬性設置爲不可枚舉。
我的數據相當複雜,我不只有2個實體,我只是簡單的例子。我正在尋找一種可以在我的代碼庫中長期生存的解決方案。
這是一個很好的解決方案嗎?我不想創建一個新的對象來存儲元數據(儘管這是一個潛在的解決方案)。有更好還是更常見的方法?
我知道這是稍有自以爲是,但終極版發出指引向我指出計算器...
注意我所知道的有Object.defineProperty兼容性問題。這是一個內部應用程序,每個人都使用最新版本的Chrome。
UPDATE
在終極版店內
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;
目前我的商店裏有'entities.people'。你是否建議將人們轉移到根級別,即顛倒我存儲實體的方式?從長遠來看,它可能會更好,但將我的實體分組在一個部分很好。 –
對不起,沒有看到。但我的回答更多的是元數據(imho)應該作爲列表的兄弟存儲。除此之外,扁平化的商店狀態總是很好。 「實體」可能不是最好的域,因爲它可能意味着所有的東西(不是從REST端點到實體的所有東西?)。 *編輯:更新我的答案。* –
你好,我正在使用redux文檔中給出的技術。你有實體的事實不能逃脫。我確實想把我所有的獨特數據以某種方式組合在一起。然後我使用選擇器來獲得更具體的數據 - 過濾的數據等... https://github.com/reactjs/redux/blob/master/examples/real-world/src/reducers/index.js –