redux-axios-middleware icon indicating copy to clipboard operation
redux-axios-middleware copied to clipboard

multiClientMiddleware broken? Cannot read property 'request' of undefined

Open Slodin opened this issue 6 years ago • 0 comments

My code works with axiosMiddleware, but after I switched over to multiclent, everything went wrong. It keep on giving me

Cannot read property 'request' of undefined

It seems like it's not getting the request from the redux action in payload.

import {multiClientMiddleware} from 'redux-axios-middleware';

export default ReduxStore = createStore(
    rootReducer, 
    applyMiddleware(
        multiClientMiddleware(
            AxiosClient
        )
    )
)

AxiosClient = {
    default: {
      client: axios.create({
        baseURL: baseUrl,
        timeout: 6000,
        responseType: 'json',
      })
      options: defaultConfig
    },
    googleMaps: {
      client: axios.create({
        baseURL: baseGoogleMapAPI,
        timeout: 6000,
        responseType: 'json'
      })
    }
  }

const defaultConfig = {
  interceptors: {
    request: [{
      success: function ({getState, dispatch, getSourceAction}, req) {
        handleTokenAuth(req);
      },
      error: function ({getState, dispatch, getSourceAction}, error) {
        Promise.reject(error)
      }
    }
    ],
    response: [{
      success: function ({getState, dispatch, getSourceAction}, req) {
        handleAxiosSuccess(req);
      },
      error: function ({getState, dispatch, getSourceAction}, error) {
        handleAxiosError(error);
      }
    }
    ]
  }
}

Redux action, it pretty much dies here

export function getUser(){
    return {
        type: "GET_USER",
        payload: {
            client: 'default',
            request: {
                method: 'GET',
                url: '/auth/user'
            }
        }
    };
}

Slodin avatar Apr 19 '19 22:04 Slodin