[英]How can I store items by id in Redux Store
我在我的 React 應用程序中使用 Redux。 但是,項目始終按index
存儲,就像那樣 =>
我想通過ids
存儲它們,比如第一個項目的索引應該是41
而不是0
。 我怎樣才能做到這一點?
export function ratedPosts(state=[], action) {
enableES5()
return (
produce(state, draft => {
const rate = action.Rate
switch (action.type) {
case RATE_POST:
draft.unshift({postId: action.postId, rate: rate})
break
case RATE_POST_UPDATE:
draft.map(post => post.postId === action.postId).rate = rate
break
default:
return draft
}
})
)
}
你不能用數組做到這一點,但你可以用對象做到這一點。 我還看到您正在使用 Array.unshift 添加新帖子,請記住,即使數組在大多數情況下都有效,也不能保證項目的順序。
您需要將數據結構轉換為使用對象而不是數組,但在 getter 函數中,您可以轉換為數組,以便在前端更容易使用。
您可以使用[ ]
編程方式設置對象 ID
let myObject = {}
const idOne = 'abc'
const idTwo = 'def'
draft[idOne] = "Hello" // draft.abc === "Hello"
draft[idTwo] = "World" // draft.def === "World"
draft === {
abc: "Hello",
def: "World"
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.