gpt4 book ai didi

javascript - 如何在不更改没有新值的属性的情况下更新对象的状态?

转载 作者:行者123 更新时间:2023-12-01 02:18:07 24 4
gpt4 key购买 nike

我有这个 reducer 。

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.nameendpoint.hostname,那么reducer会将未在有效负载中传递的值设置为未定义。如何让 reducer 只更新操作有效负载中的值,而使操作有效负载之外的值保持不变?

最佳答案

最简单的方法是使用对象扩展语法:

case UPDATE_ENDPOINT:
return <IState>state.map(endpoint =>
endpoint.ocid === action.endpoint.ocid
? {
...endpoint,
...action.endpoint
}
: endpoint
);

关于javascript - 如何在不更改没有新值的属性的情况下更新对象的状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49391967/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com