찾다

 >  Q&A  >  본문

동적 키를 정의하는 방법은 redux의initialState에 있습니다.

<p>각 사용자가 장바구니를 갖고 있고 redux 및 redux persist를 사용하여 로컬 저장소에 저장하는 전자상거래 웹사이트가 있습니다. 한 컴퓨터에서 여러 계정을 처리하고 싶습니다. 사용자에게 두 개의 계정이 있는 경우 계정 간에 전환할 수 있으며 각 계정과 관련된 데이터가 표시됩니다. 내 질문은 하나의 시스템 계정에서 여러 계정을 처리하는 방법입니다. 각 계정에는 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 세션 = getSession()을 기다립니다; console.log(세션); },</pre>
P粉478835592P粉478835592453일 전537

모든 응답(1)나는 대답할 것이다

  • P粉245003607

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

    초기 상태 객체에는 정의된 속성이 없으므로 빈 객체로 시작할 수 있습니다 initialState对象开始。当您有数据来填充您的状态时,您可以在reducer中动态地向状态中添加[userId]属性。但是,在这样做之前,您必须先用一个空对象初始化该属性,然后再赋值{ cart:[] }. 설명서의 Example을 참조하세요. 다음과 같은 단락이 있습니다. Immer는 중첩된 개체나 배열을 자동으로 생성하지 않습니다. 직접 생성해야 합니다.

    회신하다
    0
  • 취소회신하다