如https://github.com/redux-offline/redux-offline/pull/178#issuecomment-408795302所示,我们试图在redux-脱机中使用一个中间件,它可以在执行计数器commit或rollback之后分派新的操作。要点是,这些操作没有被分派,在调试之后,我们发现在分派初始操作时,中间件被用作dispatch()函数(可能是因为redux composeEnhancers()和applyMiddleware()函数是如何工作的,因为它们是链接函数的),但是当commit操作被分派时,它是直接使用存储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()
)
)发布于 2018-07-30 15:11:34
是的,offline和applyMiddleware都是“商店增强剂”。当您调用store.dispatch时,操作序列为:
offline处理因为offline增强器是在applyMiddleware增强器之后,所以它内部分配的任何操作都不会通过中间件管道。
https://stackoverflow.com/questions/51590638
复制相似问题