在我目前的实现中,我有一个初始状态:
const state = {
1: {id: 1, status: false},
2: {id: 2, status: false}
}
如果我想更新项目的状态,我很难正确地实现减速器。
我有以下内容:
export default function (state = initialState, action) {
switch (action.type) {
case UPDATE_TO_TRUE: {
const { itemID } = action;
let item = itemID.toString();
return {
...state,
item: {
status: true
}
}
}
default: {
return state;
}
}
}
基本上我无法弄清楚如何精确定位正确的钥匙。棘手的是,键被设置为数字。
答案 0 :(得分:1)
尝试在对象文字定义中使用计算属性键:
return {
...state,
[item]: {
id: item,
status: true
}
}
答案 1 :(得分:0)
您可以使用括号表示法访问所需的项目,只要密钥可以用字符串表示,就可以使用括号表示法。例如:
const state = {
1: {id: 1, status: false},
2: {id: 2, status: false}
};
console.log(state['2']);
返回你的第二个项目。