我的商店看起来像:
import { createStore, applyMiddleware, Store, AnyAction } from 'redux';
import thunk from 'redux-thunk';
import { composeWithDevTools } from 'redux-devtools-extension';
import { persistStore } from 'redux-persist';
import { rootReducer } from './reducer';
export const store = createStore(
rootReducer,
{},
composeWithDevTools(applyMiddleware(thunk))
) as Store<any, AnyAction>;
export const persistor = persistStore(store);
在 ./reducer 中创建了 combineReducers,combineReducers 发送 slice reducer,然后再发送到 persistReducer。
export const rootReducer = combineReducers({
ui: persistReducer(configUi, uiReducer),
user: persistReducer(configUser, userReducer),
});
当前状态需要创建必要的实例 axios。
const createConnection = (mode: string | undefined, typeUser: string) => {
const connect: Connection = new Connection();
if (mode && mode === 'client' && typeUser === 'visitor')
connect.setConnection(new ClientVisitor());
if (mode && mode === 'client' && typeUser === 'group')
connect.setConnection(new ClientGroup());
if (mode && mode === 'client' && typeUser === 'user')
connect.setConnection(new ClientUser());
if (mode && mode === 'dev' && typeUser === 'visitor')
connect.setConnection(new DevVisitor());
if (mode && mode === 'dev' && typeUser === 'group')
connect.setConnection(new DevGroup());
if (mode && mode === 'dev' && typeUser === 'user')
connect.setConnection(new DevUser());
return connect.createConnection();
};
const currentTypeUser = store.getState().user.status;
const connection = createConnection(
process.env.REACT_APP_MODE,
currentTypeUser
);
刷新页面后,如何在提供者和 PersistGate 之外获取当前的持久状态?