gpt4 book ai didi

javascript - 如何在redux中修改对象属性?

转载 作者:行者123 更新时间:2023-12-03 02:34:44 25 4
gpt4 key购买 nike

尝试创建一个非常简单的 redux 待办事项,几乎已经完成,但卡在了一件事上。

export const completeTodo = (todo) => ({
type: 'COMPLETE_TODO',
data: {
name: todo,
complete: !todo.complete
}
})

但是,我很难让 reducer 正常工作,因为我不知道如何确定我正在处理的确切对象

reducer :

case 'COMPLETE_TODO': {
const chore = { ...state.chores, complete: action.data.complete}
return { ...state.chores, chore };
}

初始状态是:

const initialState = {
chores: [{name: 'cleaning', complete: false}]
}

显然,当我单击按钮时,应该将其连接起来,以便它可以将完整的 bool 值更改为相反的值,但仅限于该待办事项

最佳答案

由于您有一个数组,因此需要将其替换为新数组

case 'COMPLETE_TODO': {
return {
...state,
chores: state.chores.map(chore =>
chore.name === action.data.name
? {...chore, complete: true /* or !chore.complete if you want toggle like behaviour*/}
: chore)
};
}

在你的 Action 创建器中

export const completeTodo = (todo) => ({
type: 'COMPLETE_TODO',
data: {
name: todo.name // assumning names are unique
}
})

关于javascript - 如何在redux中修改对象属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48584828/

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