M
M
Mikhail Plyusnin2016-10-04 14:47:45
React
Mikhail Plyusnin, 2016-10-04 14:47:45

Axios and react-redux?

Good evening everyone, I would like to know if it is possible to transfer store from redux to axios, and is it legal?
A small working example, everything works, but how much is it right?

//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;

Answer the question

In order to leave comments, you need to log in

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question