如https://github.com/redux-offline/redux-offline/pull/178#issuecomment-408795302所示,我们正在尝试将一个中间件与redux-offline一起使用,该中间件可以在其对应部分之后调度新操作,commit
或者rollback
是执行。关键是这些没有被调度,在调试之后,我们发现在调度初始动作时,中间件被用作dispatch()
函数(可能是由于 reduxcomposeEnhancers()
和applyMiddleware()
function 的工作方式,因为它们是链接函数),但是当commit
动作被调度时,它是直接使用 storedispatch()
方法完成的,所以根本没有中间件被执行。
我们不完全确定这是我们这边的redux-offline
配置错误,还是redux-offline
本身的错误......我们的商店配置是这样的:
import { applyMiddleware, compose, createStore } from 'redux'
import reduxOfflineThunkMiddleware from './thunk-middleware'
import rootReducer from '../../reducers'
import { createUser } from '../../actions/user'
const initialState = {}
const windowCompose = (typeof window !== 'undefined') && window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__
const composeEnhancers = windowCompose || compose
const store = createStore(
rootReducer,
initialState,
composeEnhancers(
applyMiddleware(reduxOfflineThunkMiddleware({ createUser })),
offline()
)
)