В основном я получаю токен в своем ответе API входа в систему, который используется в сетевых запросах в качестве заголовка. Я храню этот токен в своем магазине. Я использую axios для всех моих вызовов API. Я создал экземпляр axios, как показано ниже:
axios.js
const axiosInstance = axios.create({
baseURL: 'http://localhost:3003',
// timeout: 10000,
headers: {
Authorization: ~token~,
environment: 'production'
}
});
Так что я могу называть свой apis в thunks как:
const resp = await axiosInstance.get(`/log/dashboardchartdatafromdate=${dateData.dateRange.from}&todate=${dateData.dateRange.to}`);
Я попытался подписаться на редукционный магазин, как показано ниже: axios.js
:
import configureStore from '../store';
configureStore().subscribe(() => {
token = configureStore().getState().loginReducer.token; //access token here
console.log(token);
});
Мой магазин выглядит так:
store.js
export default function configureStore(initialState) {
const composeEnhancers = window.REDUX_DEVTOOLS_EXTENSION_COMPOSE || compose;
return createStore(reducers, composeEnhancers(applyMiddleware(thunk)));
}
Моя проблема в том, что блок кода не работает при изменении состояния. Работает только один раз при запуске приложения.
Я не уверен, смогу ли я подписаться на магазин внутри вспомогательной сервисной функции, как я пытался. Пожалуйста, поправьте меня, если я делаю это неправильно.