Kaedah untuk menentukan kunci dinamik adalah dalam redux's initialState
P粉478835592
2023-09-05 14:15:53
<p>Saya mempunyai tapak web e-dagang di mana setiap pengguna mempunyai troli beli-belah dan menggunakan redux dan redux berterusan untuk disimpan dalam storan setempat. Saya ingin mengendalikan berbilang akaun pada satu komputer, jika pengguna mempunyai dua akaun, dia boleh bertukar antara akaun dan data yang berkaitan dengan setiap akaun akan dipaparkan, soalan saya ialah bagaimana untuk mengendalikan berbilang akaun pada satu akaun sistem, setiap akaun mempunyai sebuah id. Saya ingin mentakrifkan struktur ini untuk keadaan awal: </p>
<pre class="brush:php;toolbar:false;">const initialState = {
[ID Pengguna]:{
troli:[]
}
}</pre>
<p>Tetapi saya mengalami ralat</p>
<p>Untuk log masuk, saya menggunakan next-auth untuk mengendalikannya dan mentakrifkan pengurang ini untuk mendapatkan ID pengguna semasa log masuk. </p>
<pre class="brush:php;toolbar:false;">addUserId: async (state, action) =>
const session = tunggu getSession();
console.log(session);
},</pre>
Memandangkan objek keadaan awal anda tidak mempunyai sifat yang ditentukan, anda boleh mulakan dengan yang kosong
initialState
对象开始。当您有数据来填充您的状态时,您可以在reducer中动态地向状态中添加[userId]
属性。但是,在这样做之前,您必须先用一个空对象初始化该属性,然后再赋值{ cart:[] }
. Lihat Contoh dalam dokumentasi, di mana terdapat perenggan yang mengatakan: Immer tidak mencipta objek atau tatasusunan bersarang secara automatik untuk anda - anda mesti menciptanya sendiri.