React + Redux : 当使用 redux reducer 时,如果我们想依赖之前的状态,是否有必要使用 prevstate ?

React + Redux : When using a redux reducer, Is the use of prevstate necessary if we want to rely on previous state?

使用Redux,如果我们想依赖之前的state来改变当前state的值,是不是需要像调用常规setState一样使用prevstate回调函数setstate(prevstate => !prevstate.boolean )? (例如,如果我们想根据先前的布尔值更改状态中的布尔值)。

那么下面的例子可以吗?不会有任何批处理的 setState 或会导致“抽搐”状态的东西吗?


const initialState = {
  showToolbar: false,
};

const toolbarReducer = (state = initialState, action) => {
  switch (action.type) {
    case "TOGGLE_TOOLBAR":
      return {
        ...state,
        showToolbar: !state.showToolbar,
      };
    default:
      return state;
  }
};

export default toolbarReducer;

我希望我的问题是有道理的!

谢谢!

此致

在 Redux reducer 中,您无需担心回调以确保您使用的是最新状态,因为没有后台批处理更新。

每个 Redux action/state 更新在调用时执行。