[英]How to in javascript update inner object array with spread operator
我的reducer中有一个商店,需要更新一个内部数组对象值:
为了:
export interface SiteState {
site: Site;
}
和
export interface Site {
id: number | null;
uuid: string;
subscriptions?: (SubscriptionI)[] | null;
}
并想更新站点->订阅[x] = action.payload
// 用解决方案编辑
function handle(state: SiteState, action: Successaction): SiteState {
const sub = state.site.subscriptions.map( subs => {
if (subs.uuid === action.payload.uuid) {
return action.payload
} else {
return subs;
}
});
const site = { site: {...state.site, subscriptions: sub} };
return site
}
我尝试了传播运算符,但他只是将我的新订阅推送到根站点,我不知道如何编写它来更新作为数组的对象 SubscriptionI。
如果您想完全替换订阅数组,那么您所做的就是正确的。 但是,如果您只想将 action.payload 中的任何内容添加到订阅数组中,那么您需要:
const site = {...state.site, subscription**S**: [...state.site.subscription**S**, action.payload]};
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.