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