reactpersist实现redux数据持久化

reactpersist实现redux数据持久化
 最后更新于 2024年10月03日 02:56:02
/**
 * redux 入口
 */

import { combineReducers, createStore, applyMiddleware } from 'redux';
import thunkMiddleware from 'redux-thunk';
import promiseMiddleware from 'redux-promise';
import { persistStore, persistReducer } from 'redux-persist'; // 数据持久化

// 默认存储器, web端使用 localStorage, RN端使用 AsyncStorage
import storage from 'redux-persist/lib/storage';

// reducers
import user from './reducers/user';

// 合并reducer
const rootReducer = combineReducers({
  user
});

// 存储器配置
const persistConfig = {
  key: 'root',
  storage
};

const persistedReducer = persistReducer(persistConfig, rootReducer);

export default function configureStore(initialState) {
  let store = createStore(
    persistedReducer,
    initialState,
    // 组合多个 middleware 形成 middleware链,扩展 actions
    applyMiddleware(thunkMiddleware, promiseMiddleware)
  );

  let persistor = persistStore(store);

  return { store, persistor };
}