Redux 为什么';这个恶作剧不更新商店吗?

Redux 为什么';这个恶作剧不更新商店吗?,redux,redux-thunk,Redux,Redux Thunk,我创建了一个thunk,它可以发送一系列不同的动作: export function resetEverything() { return function (dispatch) { return Promise.all([ dispatch(updateCurrentColor('blue')), dispatch(updateCurrentTypeChoice('hot')), dispatch(updateData('fish', {})),

我创建了一个thunk,它可以发送一系列不同的动作:

export function resetEverything() {
  return function (dispatch) {
    return Promise.all([
      dispatch(updateCurrentColor('blue')),
      dispatch(updateCurrentTypeChoice('hot')),
      dispatch(updateData('fish', {})),
      dispatch(updateData('giraffes', {})),
      dispatch(updateData('elephants', {})),
      dispatch(updateData('zebras', {})),
    ]).then(() => console.log('resetEverything called'));
  };
}
这些操作也在应用程序中单独使用。单独称为,它们工作良好;存储将使用有效负载进行更新

然而,在这个批处理操作中,所有动作都被调度,控制台显示“resetEverything called”,甚至当我查看Chrome中的Redux扩展时,每个动作都以相同的结构(当然是不同的负载)被调度。但是…当我查看差异时,它会显示
(状态相等)
,而且可以肯定的是,检查State>树显示存储密钥根本没有更新

为什么这不起作用?为什么会忽略已发送的操作

减速器:

import update from 'immutability-helper';

function reducer(state = initialState, action = {}) {
  switch (action.type) {
    case UPDATE_CURRENT_COLOR:
      return update(state, { currentColor: { $set: action.payload } });
    case UPDATE_CURRENT_TYPE_CHOICE:
      return update(state, { currentTypeChoice: { $set: action.payload } });
    case UPDATE_DATA:
      return update(state, { data: { [action.payload.property]: { $merge: action.payload.dataObject } } });
    default: return state;
  }
}

我们能看看你们的减速机吗?@AlexandreGUIDET我刚把它加在上面。(调用时的单个操作似乎可以很好地更新存储的状态)@zahabba您在测试时是否在reducer中记录了任何内容?您可能可以在redux开发工具中看到正在触发的操作,但它们不知何故没有到达减速器。@b我确实尝试过;单个/组件操作按其应该的方式启动(使用“清空”有效负载),但状态将保持不变。我们可以看看您的还原器吗?@AlexandreGUIDET我刚刚在上面添加了它。(调用时的单个操作似乎可以很好地更新存储的状态)@zahabba您在测试时是否在reducer中记录了任何内容?您可能可以在redux开发工具中看到正在触发的操作,但它们不知何故没有到达减速器。@b我确实尝试过;单个/组件操作按其应该的方式启动(使用“emptyish”有效负载),但状态将保持不变。