javascript - Redux-persist 正在返回初始状态而不是持久化
问题描述
我redux-persist
在我的代码中添加了它并没有保持状态,而是我总是得到初始状态。
这是我的代码root-reducer
import { combineReducers } from "redux";
import { persistReducer } from "redux-persist";
import storage from "redux-persist/lib/storage";
import userReducer from "./Users/user-reducer";
import cartReducer from "./Cart/cart-reducer";
const persistConfig = {
key: "root",
storage,
whitelist: ["cart"],
};
const rootReducer = combineReducers({
user: userReducer,
cart: cartReducer,
});
export default persistReducer(persistConfig, rootReducer);
这是我的store.js
文件
import { createStore, applyMiddleware } from "redux";
import logger from "redux-logger";
import rootReducer from "./root-reducer";
import { persistStore } from "redux-persist";
const middlewares = [logger];
export const store = createStore(rootReducer, applyMiddleware(...middlewares));
export const persistor = persistStore(store);
这是我的index.js
文件
import React from "react";
import ReactDOM from "react-dom";
import "./index.css";
import App from "./App";
import { BrowserRouter } from "react-router-dom";
import { Provider } from "react-redux";
import { store, persistor } from "./redux/Store";
import { PersistGate } from "redux-persist/integration/react";
ReactDOM.render(
<React.StrictMode>
<Provider store={store}>
<BrowserRouter>
<PersistGate persistor={persistor}>
<App />
</PersistGate>
</BrowserRouter>
</Provider>
</React.StrictMode>,
document.getElementById("root")
);
每当我以初始状态刷新我的页面时,我都会得到,rehydrated: true
但在触发一些操作后,我得到了rehydrated: false
.
解决方案
检查你的 reducer.js 并确保文件中 reducer 的底部是
default:
return state;
并不是
default:
return {
...state,
};```
推荐阅读
- json - Why doesn't the json model's odata property have columns?
- java - Java Regex 一组中的字符数确定下一组中的字符数
- r - 匹配字符串,允许部分匹配,但仅在存在唯一匹配时
- regex - 如何选择所有非字母数字记录并将其删除?
- r - 如何提取特定字符串之后的所有内容?
- python - C++ 是否有 tf.lite.Interpreter.get_input_details 的等价物?
- google-sheets - 使用 SUM 和 INDEX 将公式转换为 ARRAYFORMULA 问题
- python - Pygame 模块无法播放音频
- html - html中的关键事件不会抛出函数
- c# - 尝试使用 Dapper.SimpleCRUD 插入泛型时出错