import { configureStore } from "@reduxjs/toolkit"; import { persistStore, persistReducer } from "redux-persist"; import storage from "redux-persist/lib/storage"; // 默认使用LocalStorage import setUserInfo from "./reducers/userSlice"; const persistConfig = { key: "root", storage, }; const persistedReducer = persistReducer(persistConfig, setUserInfo); export const store = configureStore({ reducer: persistedReducer, }); export const persistor = persistStore(store);
时间: 2024-04-22 07:26:15 浏览: 187
React通过redux-persist持久化数据存储的方法示例
你的代码看起来基本上是正确的,但有一个小问题。在使用`persistReducer`时,你应该传递一个包含所有reducer的根reducer,而不是单个reducer。
在你的代码中,`setUserInfo`是一个单个reducer。如果你只有一个reducer,你可以直接将其作为根reducer传递给`configureStore`。如果你有多个reducer,你需要使用`combineReducers`函数创建一个根reducer。
这里是一个修正后的代码示例:
```javascript
import { configureStore, combineReducers } from "@reduxjs/toolkit";
import { persistStore, persistReducer } from "redux-persist";
import storage from "redux-persist/lib/storage"; // 默认使用LocalStorage
import userReducer from "./reducers/userSlice";
const persistConfig = {
key: "root",
storage,
};
const rootReducer = combineReducers({
user: userReducer,
});
const persistedReducer = persistReducer(persistConfig, rootReducer);
export const store = configureStore({
reducer: persistedReducer,
});
export const persistor = persistStore(store);
```
在这个示例中,我假设你有一个名为`userSlice.js`的文件作为用户信息的reducer,并将其命名为`userReducer`。通过使用`combineReducers`函数,我将它与其他可能存在的reducer组合成一个根reducer。
然后,我使用`persistReducer`将根reducer和持久化配置包装起来,创建一个持久化的reducer。最后,我按照你之前的方式配置了`store`和`persistor`。
请根据你的实际应用程序结构和需求进行调整。希望这可以帮助到你!
阅读全文