我需要访问react组件外部的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中的user reducer中,并使用redux persist持久化。应用程序。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我需要访问用户令牌。我需要在每个axios请求之前检查oauth2令牌的过期时间。在axios发送请求之前,我调用setHeader函数。我的api代码。js如下:
import configureStore from './configureStore'; //import config store
function setHeader(){
const { store, persistor } = configureStore();
console.log('store is:', store.getState())
}
当我调用setHeader函数控制台时。log show store为空,而不是show redux store数据。
有人能帮忙吗?