我有这个减速器。
case UPDATE_ENDPOINT:
return <IState>state.map(endpoint =>
endpoint.ocid === action.endpoint.ocid
? {
...endpoint,
name: action.endpoint.name,
hostname: action.endpoint.hostname,
origin: action.endpoint.origin,
originType: action.endpoint.originType,
originValidation: action.endpoint.originValidation,
}
: endpoint
);
假设在我的操作有效负载中我只有endpoint.name
和endpoint.hostname
,则reducer会将有效负载中未传递的值设置为undefined
。如何让reducer仅更新action有效负载中的值,并保留不在action有效负载中的值?
答案 0 :(得分:2)
最简单的方法是使用对象扩展语法:
case UPDATE_ENDPOINT:
return <IState>state.map(endpoint =>
endpoint.ocid === action.endpoint.ocid
? {
...endpoint,
...action.endpoint
}
: endpoint
);