更新数组中的整个项目-Redux

时间:2020-05-04 09:18:04

标签: react-native redux react-redux

我正在尝试通过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]
        }
    }
}

1 个答案:

答案 0 :(得分:0)

弄清楚了,谢谢大家的帮助。不是React或Redux问题,实际上是节点服务器在检查更新内容之前返回数据的问题。