検索

ホームページ  >  に質問  >  本文

動的キーの定義方法はreduxのinitialStateにあります。

<p>各ユーザーがショッピング カートを持ち、redux と reduxpersist を使用してローカル ストレージに保存する電子商取引 Web サイトを持っています。 1 台のコンピュータで複数のアカウントを処理したいのですが、ユーザーが 2 つのアカウントを持っている場合、アカウントを切り替えることができ、各アカウントに関連するデータが表示されます。私の質問は、1 つのシステム アカウントで複数のアカウントを処理する方法です。各アカウントにはID。初期状態としてこの構造体を定義したいと思います: </p> <pre class="brush:php;toolbar:false;">constInitialState = { [ユーザーID]:{ カート:[] } }</pre> <p>しかし、エラーが発生しました</p> <p>ログインについては、next-auth を使用して処理し、ログイン時にユーザーの ID を取得するためにこのリデューサーを定義します。 </p> <pre class="brush:php;toolbar:false;">addUserId: async (state, action) => { //ここで userId を受け取ります const session = await getSession(); コンソール.ログ(セッション); },</pre>
P粉478835592P粉478835592454日前539

全員に返信(1)返信します

  • P粉245003607

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

    初期状態オブジェクトには定義されたプロパティがないため、空の initialState オブジェクトから始めることができます。状態を設定するデータがある場合、リデューサー内の状態に [userId] 属性を動的に追加できます。ただし、これを行う前に、まず空のオブジェクトでプロパティを初期化し、それを { カート:[] } に割り当てる必要があります。ドキュメントの Example を参照してください。そこには、次のような段落があります。 Immer は、ネストされたオブジェクトや配列を自動的に作成しません。それらは自分で作成する必要があります。

    返事
    0
  • キャンセル返事