gpt4 book ai didi

javascript - 如何在嵌套的 javascript 对象上使用扩展运算符?

转载 作者:行者123 更新时间:2023-11-30 13:47:49 26 4
gpt4 key购买 nike

我正在尝试更新我的部分 redux 状态,其中包含嵌套在另一个对象中的两个对象。通常在不可变地更新 javascript 对象时,我会使用扩展运算符,然后按如下方式定义任何更改:

state = {...state, property1: newvalue} 

但是,当我有嵌套对象时,我不确定如何使用扩展运算符。这是相关代码和我的尝试:

const squadDatabase = {currentSquad: {
0: null,
1: null,
2:null

}, newAdditions: null}

export default (state=initial_squad, action)=>{

switch(action.type){
case ADD_PLAYER_TO_SQUAD:
return {...state, currentSquad[action.payload.currentSquadMemberId]:action.payload.newSquadAdditionId, newAdditions: action.payload.newSquadAdditionId}
default:
return initial_squad
}
}

有没有人知道如何不可变地更新嵌套的 javascript 对象,使用扩展运算符或其他方式?

最佳答案

基本上你必须添加第二级对象(状态)解构。

return {
...state, // first nesting level spread
currentSquad: {
...this.state.currentSquad, // second nesting level spread
currentSquad[action.payload.currentSquadMemberId]: action.payload.newSquadAdditionId,
},
newAdditions: action.payload.newSquadAdditionId,
};

关于javascript - 如何在嵌套的 javascript 对象上使用扩展运算符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58943693/

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