搜尋

首頁  >  問答  >  主體

定義動態鍵的方法在redux的initialState中

<p>我有一個電子商務網站,每個用戶都有購物車,並使用redux和redux persist來儲存在本地儲存中。我想在一台電腦上處理多個帳戶,如果一個使用者有兩個帳戶,他可以在帳戶之間切換,與每個帳戶相關的資料會顯示出來,我的問題是如何處理一個系統上的多個帳戶,每個帳戶都有一個id。我想為初始狀態定義這個結構:</p> <pre class="brush:php;toolbar:false;">const initialState = { [userId]:{ cart:[] } }</pre> <p>但是我遇到錯誤了</p> <p>對於登錄,我使用next-auth來處理,並為獲取用戶登錄時的ID定義了這個reducer。 </p> <pre class="brush:php;toolbar:false;">addUserId: async (state, action) => { //在這裡我接收到userId const session = await getSession(); console.log(session); },</pre>
P粉478835592P粉478835592488 天前559

全部回覆(1)我來回復

  • P粉245003607

    P粉2450036072023-09-06 13:25:14

    由於您的初始狀態物件沒有定義的屬性,您可以從空的initialState物件開始。當您有資料來填充您的狀態時,您可以在reducer中動態地向狀態中新增[userId]屬性。但是,在這樣做之前,您必須先用空物件初始化該屬性,然後再賦值{ car​​t:[] }。請參閱文件中的範例,其中有一段文字說:Immer不會自動為您建立嵌套的物件或陣列 - 您必須自己建立它們。

    回覆
    0
  • 取消回覆