我是React的新手,甚至更新的Redux因此也是问题。
所以我的reducer中有一个初始状态Object = {}
现在我想修改此状态并使用对象用户返回它。
所以我期待一个结果Object = {user}
用户本身具有以下属性,
{A: 1, B:2, C:3}
如果我使用Object.assign({}, state, user}
我得到以下内容,
Object = {A: 1, B:2, C:3}
那么如何将用户对象作为参数复制到状态对象而不将其拆分。如果我正在添加的对象是一个数组,我该怎么做呢。
答案 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来说太过分了。