定义动态键的方法在redux的initialState中
P粉478835592
P粉478835592 2023-09-05 14:15:53
0
1
546
<p>我有一个电子商务网站,每个用户都有购物车,并使用redux和redux persist来存储在本地存储中。我想在一台计算机上处理多个账户,如果一个用户有两个账户,他可以在账户之间切换,与每个账户相关的数据会显示出来,我的问题是如何处理一个系统上的多个账户,每个账户都有一个id。我想为初始状态定义这个结构:</p> <pre class="brush:php;toolbar:false;">const initialState = { [userId]:{ cart:[] } }</pre> <p>但是我遇到了错误</p> <p>对于登录,我使用next-auth来处理,并为获取用户登录时的ID定义了这个reducer。</p> <pre class="brush:php;toolbar:false;">addUserId: async (state, action) => { //在这里我接收到userId const session = await getSession(); console.log(session); },</pre>
P粉478835592
P粉478835592

全部回复(1)
P粉245003607

由于您的初始状态对象没有定义的属性,您可以从一个空的initialState对象开始。当您有数据来填充您的状态时,您可以在reducer中动态地向状态中添加[userId]属性。但是,在这样做之前,您必须先用一个空对象初始化该属性,然后再赋值{ cart:[] }。请参阅文档中的示例,其中有一段文字说:Immer不会自动为您创建嵌套的对象或数组 - 您必须自己创建它们。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板