1
進入終極版的世界,只是想以確保如果我在做什麼是理智和正確的。例如,我們已恢復正常狀態,看起來像這樣:終極版規格化狀態形狀刪除參考ID的多個地方
```
posts: {
"1": {
"id": "1",
"title": "My first post!",
"author": "Jake",
},
"2": {
"id": "2",
"title": "This other other post",
"author": "Paul",
},
"3": {
"id": "3",
"title": "This new post",
"author": "Billy",
},
"4": {
"id": "4",
"title": "This other other other post",
"author": "Arnold",
},
},
globalFeed: {
postIds:["1","2","3","4"]
},
myFeed: {
postIds:["1","2"]
},
```
我們有兩個不同的飼料,並有包含它們的帖子引用。我讀丹·阿布拉莫夫的地方張貼關於標準化狀態刪除項目,他提到,刪除引用該項目是很好的解決方案,如果它是一個列表。
但在我的應用程序,我們可以看到的職位名單,看到一個帖子,所以僅刪除引用是不是一個解決方案。所以我的問題是,如果我只是從狀態刪除特定的帖子(即用Id 1發佈)並且保持引用完好。然後使用選擇器檢索帖子並過濾未定義的值。這個解決方案是否理智?我會遇到一些問題嗎?有沒有更好的解決方案?我可以刪除特定的帖子和引用,但是如果有多個引用該帖子的地方,它就是很多樣板文件。
選擇例如
```
const globalFeedPosts = state => {
return state.globalFeed.postIds
.map(id => state.posts[id])
.filter(value => value !== undefined)
};
```
感謝
你能詳細說明我可以遇到什麼問題嗎?僅用於教育目的。您的解決方案聽起來更好,所以選擇將是相同的,而不是僅僅過濾掉那些不確定的,過濾的帖子是「被示」的帖子:真實的,是嗎? :) – Polisas
yieah,絕對。因此,我們將面臨的問題是 - 一旦從商店中刪除帖子對象,我們可能會引用它,但我們將永遠無法取回原始帖子對象,我們將失去該對象,並且爲了使其再次可用,我們必須在刪除它之前創建它的冗餘副本,因爲如果我們嘗試再次添加它,則需要它。希望這可以幫助。遺憾的評論 – mindaJalaj
沒有問題,感謝澄清的長度。 – Polisas