/**
* 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 };
}