搜索

首页  >  问答  >  正文

定义动态键的方法在redux的initialState中

<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粉478835592P粉478835592453 天前538

全部回复(1)我来回复

  • P粉245003607

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

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

    回复
    0
  • 取消回复