我正在尝试通过redux调度来更新对象数组中的单个对象,我已经尝试过回答类似问题,但是我似乎无法使其正常工作。我想做的是,当动作执行时,它应该在数组中查找与action.options.date
相同日期的项目,然后应该用新的项目{{1}替换数组中的该项目},即整个项目对象。
actions.options.data[0]
const initialState = {
isFetching: false,
monthArray: [],
searchOptions: {
currentMonth: moment().format('YYYY-MM'),
leeway: 1
},
availabilityOptions: {
Early: -1,
Late: -1,
Day: -1,
Twilight: -1,
Night: -1
}
};
动作代码:(数据原因:data [0]是因为返回了来自mysql的对象数组)
case UPDATE_DAY_IN_MONTH_ARRAY:
return Object.assign({}, state, {
monthArray: state.monthArray.map(item => {
if (formatDate(item.date) === formatDate(action.options.date)) {
return action.options.data[0];
}
return item;
})
});
调度动作
export const updateDayInMonthArray = (date, data) => {
return {
type: UPDATE_DAY_IN_MONTH_ARRAY,
options: {
date,
data: data[0]
}
}
}
答案 0 :(得分:0)
弄清楚了,谢谢大家的帮助。不是React或Redux问题,实际上是节点服务器在检查更新内容之前返回数据的问题。