例如,在道具中,我有一个名为“用户”的对象,该对象设置为:
GetStringAsync
我想让UPDATE_USER_ENTRIES操作仅向用户分配更新。使用有效负载进行输入
我目前的减速器功能是这样的:
user = { id: 1,
name: jim,
email: jim@gmail.com,
entries: 4,
joined: 07-16-2018
}
为了返回仅更新了条目属性的新用户对象,编写返回的正确方法是什么?谢谢!
答案 0 :(得分:1)
您可以像这样使用散布运算符:
如果您的状态是:
state = {
foo: "bar",
user: {
id: 1,
name: "jim",
email: "jim@gmail.com",
entries: 4,
joined: "07-16-2018",
}
}
下面的代码,传播状态,不要触摸foo
,传播状态的user
,更新entries
属性。
case UPDATE_USER_ENTRIES:
return {...state, user: {...state.user, entries: action.payload } };
如果您的状态如下:
user: {
id: 1,
name: "jim",
email: "jim@gmail.com",
entries: 4,
joined: "07-16-2018",
}
以上代码散布了仅user
的状态,然后更新了entries
属性。
case UPDATE_USER_ENTRIES:
return {...state, entries: action.payload };
您的有效负载仅持有一个值:userEntries
,因此它仅等于userEntries。因此,在减速器中,您需要根据以下条件使用它:action.payload
您的有效负载不是持有userEntries
值的对象。