Мне нужно получить доступ к данным хранилища redux и функции диспетчеризации вне компонента реакции (в функции utils)
Я использую React Native, Redux, Redux Saga, Redux Persist. мой файл хранилища конфигурации выглядит следующим образом:
//create the saga middleware
const sagaMiddleware = createSagaMiddleware();
const encryptor = createEncryptor({
secretKey: 'encryptor_key',
onError(error) {
console.log('Encryptor error', error);
// Handle the error.
},
});
const persistConfig = {
key: 'root',
storage,
transforms: [encryptor],
whitelist: ['user', 'etc'],
};
const persistedReducer = persistReducer(persistConfig, rootReducer);
export default () => {
const store = createStore(persistedReducer, applyMiddleware(sagaMiddleware));
const persistor = persistStore(store);
sagaMiddleware.run(rootSaga);
return { store, persistor };
};
после входа пользователя в систему я сохраняю информацию о пользователе и токен oath2 в редукторе пользователя в redux и сохраняю его с помощью Redux Persist. App.js похож на код ниже:
import configureStore from './services/configureStore';
const { store, persistor } = configureStore();
render() {
return (
<Provider store={store}>
<PersistGate loading={<Loading style={{ flex: 1 }} />} persistor={persistor}>
<AppNavigator />
</PersistGate>
</Provider>
);
}
теперь в api.js мне нужно получить доступ к токену пользователя. Мне нужно проверить время истечения срока действия токена oauth2 перед каждым запросом axios. перед отправкой запроса axios я вызываю функцию setHeader. мой код в api.js выглядит следующим образом:
import configureStore from './configureStore'; //import config store
function setHeader(){
const { store, persistor } = configureStore();
console.log('store is:', store.getState())
}
когда я вызываю функцию setHeader console.log show store пуст, вместо show redux store data. кто-нибудь может помочь?