无法更改 Redux 切片中的 initialState

Can't change initialState in Redux slice

我在创建我的 themeSlice 时考虑到了硬编码主题 initialState:{theme: "lightTheme"}。我很快意识到一个更好的方法是使用一个简单的布尔值 initialState: { darkTheme: false }.

进行更改并再次 运行 程序后,我仍然在控制台中看到 "theme": "lightTheme"

我在这个项目中使用了 React-toolkit 和 RTK-Query,不确定是不是我的设置问题。

这是我的商店设置:

const rootReducer = combineReducers({
  test: testSlice,
  theme: darkThemeSlice,
  [apiSlice.reducerPath]: apiSlice.reducer,
});

const persistConfig = {
  key: "root",
  storage: AsyncStorage,
};

const persistedReducer = persistReducer(persistConfig, rootReducer);

const store = configureStore({
  reducer: persistedReducer,
  devTools: true,
  middleware: (getDefaultMiddleWare) =>
    getDefaultMiddleWare({ serializableCheck: false }).concat(
      apiSlice.middleware
    ),
});

export default store;

我清除了缓存并重新运行我的应用程序,但没有任何改变。

知道这里发生了什么吗?

您正在使用 redux-persist。 initialState 是“没有状态时的状态 - 但在您的情况下,始终存在您之前访问该网站时的状态。
因此,在您的情况下,initialState 仅在用户首次访问该网站时发生 ,永远

如果您仍在开发中,您可以使用浏览器开发工具重置本地存储。如果将其部署在某个地方,您将无法进入所有用户的浏览器,因此您必须在 redux-persist 中创建一个迁移,以将人们从您的第一个初始状态转移到您的第二个初始状态。 (如果您的州改变结构,则尤其必要!)