Die Methode zum Definieren dynamischer Schlüssel befindet sich im initialState von Redux
P粉478835592
2023-09-05 14:15:53
<p>Ich habe eine E-Commerce-Website, auf der jeder Benutzer einen Warenkorb hat und Redux und Redux Persist verwendet, um im lokalen Speicher zu speichern. Ich möchte mehrere Konten auf einem Computer verwalten. Wenn ein Benutzer zwei Konten hat, kann er zwischen den Konten wechseln und die mit jedem Konto verbundenen Daten werden angezeigt. Meine Frage ist, wie man mit mehreren Konten auf einem System umgeht. Konten, die jedes Konto hat eine ID. Ich möchte diese Struktur für den Ausgangszustand definieren: </p>
<pre class="brush:php;toolbar:false;">const initialState = {
[Benutzer-ID]:{
Wagen:[]
}
}</pre>
<p>Aber ich habe einen Fehler festgestellt</p>
<p>Für die Anmeldung verwende ich next-auth, um damit umzugehen, und definiere diesen Reduzierer, um beim Anmelden die ID des Benutzers abzurufen. </p>
<pre class="brush:php;toolbar:false;">addUserId: async (state, action) => //Hier erhalte ich userId
const session = Warten auf getSession();
console.log(session);
},</pre>
由于您的初始状态对象没有定义的属性,您可以从一个空的
initialState
对象开始。当您有数据来填充您的状态时,您可以在reducer中动态地向状态中添加[userId]
属性。但是,在这样做之前,您必须先用一个空对象初始化该属性,然后再赋值{ cart:[] }
。请参阅文档中的示例,其中有一段文字说:Immer不会自动为您创建嵌套的对象或数组 - 您必须自己创建它们。