我正在尝试添加到我的对象中的数组,我正在传递id和值来添加:
case ADD_ACHIEVEMENT:
return [
{
id: action.id,
achievements: [...state.achievements, action.label]
},
...state
]
初始状态:
const initialState = [
{
date: "Fri 1st",
enjoyments: [],
achievements: [],
id: 0
},
{
date: "Fri 2",
enjoyments: [],
achievements: [],
id: 1
},
如何在reducer中添加值?
编辑:对不起我是redux的新手我可能没有正确解释自己。我想更新achievement
中传递的id
action
数组。我的成就数组只是一个字符串数组。我只想添加另一个条目。
获取sytax错误:
语法错误:C:/sites/CalendarRedux/src/reducers/days.js:意外的令牌,预期,(62:11)
case ADD_ACHIEVEMENT:
return state.map(day => {
if (day.id === action.id) {
return Object.assign({}, day, {
achievements: [
...day.achievements,
action.label,
]
}; <<<<<<< line 62
}
return day;
});
答案 0 :(得分:0)
case ADD_ACHIEVEMENT:
return state.map(item => {
if (item.id === action.id) {
return Object.assign({}, item, {
achievements: [
...item.achievements,
action.label,
]
});
}
return item;
});
鉴于您的评论,您基本上希望更新数组中与该操作传递的id
匹配的项目。这是一种方法,基本上,如果您不想更新它,则将每个项目映射到自身,并更新与id
匹配的项目。您所犯的错误是尝试访问state.achievements
而您需要访问特定项目的achievements
。