Axios и react-redux?

Всем доброго вечера, хотелось бы узнать можно ли прокидывать store из redux'a в axios, и законно ли это?
Небольшой рабочий пример, все работает, но на сколько это правильно?
//index.js
...
const store = configureStore();
api.store = store;
...

//api.js - моя обертка над axios
import axios from 'axios'
import {addFlashMessage } from '../actions/flashMessageActions'; //этот метод для dispatch'a

let api = {};
axios.defaults.baseURL = 'http://srv-t-01:35561/';
//эта штука срабатывает при каждом ответе с сервера
axios.interceptors.response.use(
     function (response) { 
//если все хорошо, пусть идет дальше по цепочке
         return response;
        },
//если завершилась с ошибкой, то ловим ее
     function (error) {
         const {status, data} = error.response;
         let text;
//примерная обработка кодов ошибок
         switch (status) {
             case 500:
                 text = 'Внутренняя ошибка сервера. Обратитесь к администратору.'   
                 break;
             case 401:
                 text = 'Ошибка авторизации. Пожалуйста войдите в систему.'   
                 break;
             default:
                 text = data.error_description || data.message;
                 break;
         }

         this.store.dispatch(addFlashMessage({ type: 'danger', text})) //здесь мы добавляем событие в store, после чего компонент подхватит его и отрисует
        return window.Promise.reject(error); //отдаем ошибку дальше по цепочке
        }.bind(axios));

api = axios;
export default api;
  • Вопрос задан
  • 3625 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы