next.js 在redux的initialState中定义动态键

pbwdgjma  于 2023-03-29  发布在  其他
关注(0)|答案(1)|浏览(108)

我有一个电子商务网站,每个用户都有购物车,并使用redux和redux持久化处理此存储在本地存储。我想在一台计算机上处理多个帐户,如果用户有两个帐户,他可以在帐户和与每个帐户相关的数据之间切换显示,我的问题是如何在一个系统上处理多个帐户,每个帐户都有id。我想为初始状态定义这个结构:

const initialState = {
    [userId]:{
        cart:[]
  }

但我得到了错误
对于登录,我用next-auth处理这个问题,并定义了这个reducer,用于在用户登录时获取ID。

addUserId: async (state, action) => {   //here I receive userId
      const session = await getSession();
      console.log(session);
    },
zhte4eai

zhte4eai1#

由于初始状态对象没有定义的属性,所以可以从一个空的initialState对象开始。当你有数据来水合你的状态时,你可以动态地将[userId]属性添加到你的reducer中的状态。但是,在这样做的时候,你必须先用一个空对象初始化该属性,然后才能赋值{ cart:[] }。请参阅文档中的例子,下面的文字是:Immer不会自动为您创建嵌套对象或数组,需要您自己创建。

相关问题