簡體   English   中英

如何在 Redux Store 中按 id 存儲項目

[英]How can I store items by id in Redux Store

我在我的 React 應用程序中使用 Redux。 但是,項目始終按index存儲,就像那樣 =>

店鋪

我想通過ids存儲它們,比如第一個項目的索引應該是41而不是0 我怎樣才能做到這一點?

減速器.js

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM