Answer the question
In order to leave comments, you need to log in
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 questionAsk a Question
731 491 924 answers to any question