📜  redux 工具包如何设置空初始状态 - Javascript (1)

📅  最后修改于: 2023-12-03 15:34:42.206000             🧑  作者: Mango

Redux 工具包如何设置空初始状态

在 Redux 中,初始状态是 Redux 的状态树的根。如果没有任何初始状态,则状态树将是 undefined,这可能会导致问题。为了避免这种情况,Redux 提供了一种设置空初始状态的方法。

在 Redux 中,需要定义一个 reducer 函数来处理 action 并返回新的状态。设置空初始状态可以通过创建一个可接受任何类型的 state 并在 reducer 函数中处理 undefined 的情况。

以下是一个示例 reducer 函数,用于处理初始状态为空的情况:

const initialState = {};

function reducer(state = initialState, action) {
  switch (action.type) {
    // 处理 action 行为
    default:
      return state;
  }
}

在此示例中,初始状态被设置为一个空对象。当状态未定义时(例如在第一次渲染时),则会将初始状态设置为 initialState。在 reducer 函数中,如果 state 仍然是 undefined,则会返回初始状态。

请注意,在使用 combineReducers 函数合并多个 reducer 函数时,必须向每个 reducer 函数提供初始状态。以下是示例代码:

import { combineReducers } from 'redux';

const initialState = {};

function reducer1(state = initialState, action) {
  switch (action.type) {
    // 处理 action 行为
    default:
      return state;
  }
}

function reducer2(state = initialState, action) {
  switch (action.type) {
    // 处理 action 行为
    default:
      return state;
  }
}

const rootReducer = combineReducers({
  reducer1,
  reducer2
});

export default rootReducer;

在此示例中,两个 reducer 函数都使用相同的初始状态 initialState。它们被合并为 rootReducer,该对象会将它们的状态合成一个状态树。

总之,为了在 Redux 中设置空初始状态,请创建一个可接受任何类型的 state,并在 reducer 函数中处理 undefined 的情况。此外,在使用 combineReducers 函数合并多个 reducer 函数时,必须向每个 reducer 函数提供初始状态。