在 Redux 的 reducer 中获取之前和当前的状态

Get previous and current state in Redux's reducer

我开始研究Redux。 在我的应用程序中,我有一个按钮。我推入这个 btn 并得到一个对象。 此对象收入到 action.payload 中的 reducer。 当我按下按钮时,对象每次都会改变。 我如何将所有以前的状态保存在减速器中,并添加当前状态? 制作类似的东西:

 if (action.type === "ADD_ITEM") {
        return {
          items: [all previous state, + current state],
        };
      }

reducer 中的所有代码

const initialState = {
  items: [],
};

const basket = (state = initialState, action) => {
  if (action.type === "ADD_ITEM") {
    return {
      items: [action.data],
    };
  }
  return state;
};

export default basket;

您可以在更新之前访问以前的值(并且可以保存它),并且如您所知,您可以通过操作更新它

如果你想追加新数据到数组中,你可以浅复制现有状态数组并将新数据追加到末尾。

const initialState = {
  items: [],
};

const basket = (state = initialState, action) => {
  if (action.type === "ADD_ITEM") {
    return {
      ...state,         // shallow copy existing state
      items: [
        ...state.items, // shallow copy existing items
        action.data,    // append new data
      ],
    };
  }
  return state;
};