复制React-Redux Reducer中的对象

时间:2016-11-28 19:01:18

标签: javascript reactjs react-redux

我是React的新手,甚至更新的Redux因此也是问题。

所以我的reducer中有一个初始状态Object = {}

现在我想修改此状态并使用对象用户返回它。

所以我期待一个结果Object = {user}

用户本身具有以下属性,

{A: 1, B:2, C:3}

如果我使用Object.assign({}, state, user}  我得到以下内容,

Object = {A: 1, B:2, C:3}

那么如何将用户对象作为参数复制到状态对象而不将其拆分。如果我正在添加的对象是一个数组,我该怎么做呢。

2 个答案:

答案 0 :(得分:2)

请改为:Object.assign({}, state, {user})

编辑:回复下面的评论,如果用户是一个数组,比如说users,它的工作方式是相同的:

> var state = {A: 1, B:2, C:3}
> var users = [1,2,3];
> Object.assign({}, state, {users});
{A: 1, B: 2, C: 3, users: [ 1, 2, 3 ] }

答案 1 :(得分:1)

试试这个:

Object.assign({}, state, { user: user })

原因:

您传入的对象将覆盖以前的选项,通过传入用户,您将使用{A:1,B:2,C:3}覆盖当前状态,而不是覆盖对象中的属性keyid用户。

或者(如果您的设置支持它),您可以使用扩展语法,如下所示:

{
  ...state,
  user: user
}

实际上,甚至更短,

{
  ...state,
  user 
}

Object.assign对Redux来说太过分了。