我的对象处于还原状态
const obj = {
name: 'name',
age: 2,
place: 0,
}
我在页面上显示了这些值,但我想使其中两个可编辑,以便可以更新对象。
为此,我基本上是从两个输入中获取值并将它们发送到我的action
export const saveEditedData = data => dispatch => {
dispatch({
type: CHANGE_DATA,
data,
});
}
然后在减速器中
case 'CHANGE_DATA':
return {
...state,
obj: {
...state.obj,
name: action.data.name,
age: action.data.age,
}
}
我面临的问题是,如果一个值被更新,而另一个值未更新,那么在执行此操作后,我的第二个值将为空。
我的问题是确定哪个字段被更改并仅对其进行更新的一种好方法?
到目前为止,我只想出要付诸行动if else
来派遣某些事情。也许有更好的方法?
答案 0 :(得分:0)
您可以1.使用各个动作changeName
,changeAge
等对每个字段进行更新,或2.在将动作有效载荷放入{{ 1}}:
obj
( case 'CHANGE_DATA':
return {
...state,
obj: {
...state.obj,
...action.data.filter(el => !!el)
}
}
表示在过滤时将数组元素转换为布尔值,并非严格必要,但很卫生)
编辑:对不起,我误解了您的数据形状,请参阅注释。