无法更改 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 中创建一个迁移,以将人们从您的第一个初始状态转移到您的第二个初始状态。 (如果您的州改变结构,则尤其必要!)
我在创建我的 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 中创建一个迁移,以将人们从您的第一个初始状态转移到您的第二个初始状态。 (如果您的州改变结构,则尤其必要!)