I have outlined a few ways to possibly access state from the web service, but I do not know which one is the proper one in a react-redux app, or if the proper one is even listed below.
Context:
Originally, I had an API.js file which acted as a base for web services. I would then import this into my action files. This went well until I needed to access the state (more specifically, a web token in the state that I needed for my header) from  API.js. I tried to import my store, but it returned undefined. I then realized I had a circular dependency:
api -> store -> reducers -> components -> actions
Custom Middleware
I was wondering if this is acceptable. I ditched my API.js. I use this to automatically modify outgoing network calls that have a specific action type. This is what my middleware stack looks like:
const middleware = applyMiddleware(
    myCustomModifyRequestMiddleware,
    thunk,
    . . .
And myCustomModifyRequestMiddleware basically looks like:
 const myCustomModifyRequestMiddleware = store => next => action {
     if(action.type === 'MODIFY_ME') {
         //Dispatch an FSA
         store.dispatch({
             type: action.payload.actual_type,
             payload: axios.create({ . . .
             meta: action.meta
         })
     }
     return next(action)
 }
Now I have business logic inside my middleware!
Then I could just have an action creator named API_ActionCreator. But hey, if I was just going to use an action creator why not just...
Thunk it
Using thunks I could probably just have something like API_ActionCreator.js:
const apiActionCreator = (actual_type, url, data . . .) {
    return (dispatch, store) {
        //Now I can get the state...
        store.getState()
        //Return an FSA
        return { 
            type: actual_type,
            payload: axios.create...
Now I can import my API_ActionCreator into my actions without any circular dependencies.
Subscribing to the store ?
Another way would be to have the web service be stateful; subscribe to the store in store or the web service, if I could somehow avoid running into a circular dependency when I called my web services inside my actions.
TLDR; Of course, this is all experimental, though I was able to get the middleware working.
I don't know which one is the most viable approach, is there maybe a more redux-ish way to do this?
 
     
    