我用initialState:{theme: "lightTheme"}
这个硬编码主题创建了我的themeSlice,我很快意识到一个更好的方法是使用一个简单的布尔值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;
我清除缓存并重新运行应用程序,没有任何变化。
知道这里发生了什么吗?
2条答案
按热度按时间i1icjdpr1#
您使用的是redux-persist。
initialState
是“如果没有状态,则为状态-但在您的情况下,总是存在您之前在该网站上的状态。因此,
initialState
在您的情况下只会发生 * 当用户第一次访问网站,永远 *.如果你还在开发阶段,你可以使用浏览器devtools重置本地存储,如果你的浏览器已经被部署了,你就不能访问所有用户的浏览器,所以你必须在redux-persist中创建一个迁移,将用户从你的第一个初始状态迁移到第二个初始状态(尤其是当你的状态改变结构时)。
djmepvbi2#
要清除初始状态中的错误和硬设置值,您可以尝试
并且一旦清除,您就可以删除黑名单项目。