【发布时间】:2018-07-30 09:16:36
【问题描述】:
如https://github.com/redux-offline/redux-offline/pull/178#issuecomment-408795302 所示,我们正在尝试与redux-offline 一起使用一个中间件,该中间件可以在它们的对应部分commit 或rollback 执行后调度新动作。重点是这些都没有被调度,调试之后发现,在调度初始动作时,中间件被用作dispatch()函数(可能是由于reduxcomposeEnhancers()和applyMiddleware()函数的工作原理,因为它们链接了函数),但是当 commit 动作被调度时,它是直接使用 store dispatch() 方法完成的,所以根本没有执行任何中间件。
我们不能完全确定是我们这边的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()
)
)
【问题讨论】:
标签: redux middleware redux-offline