执行提交或回滚操作时,redux offline忽略中间件

执行提交或回滚操作时,redux offline忽略中间件,redux,middleware,redux-offline,Redux,Middleware,Redux Offline,如中所示,我们正在尝试使用一个中间件,该中间件可以在执行其计数器部分commit或rollback后调度新操作。关键是这些操作没有被调度,在调试之后,我们发现在调度初始操作时,中间件被用作dispatch()函数(可能是由于reduxcomposeEnhancers()和applyMiddleware()函数的工作方式,因为它们链接了函数),但是当commit操作被调度时,它直接使用storedispatch()方法完成,因此根本没有执行任何中间件 我们不能完全确定这是我们方面关于redux o

如中所示,我们正在尝试使用一个中间件,该中间件可以在执行其计数器部分
commit
rollback
后调度新操作。关键是这些操作没有被调度,在调试之后,我们发现在调度初始操作时,中间件被用作
dispatch()
函数(可能是由于redux
composeEnhancers()
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()
  )
)

是的,
offline
applyMiddleware
都是“商店增强器”。调用
store.dispatch
时,操作顺序为:

  • 由中间件管道中的所有中间件处理
  • 离线处理
  • 由商店自己处理

因为
离线
增强器在
applyMiddleware
增强器之后,所以它内部分派的任何操作都不会经过中间件管道。

是的,
离线
applyMiddleware
都是“存储增强器”。调用
store.dispatch
时,操作顺序为:

  • 由中间件管道中的所有中间件处理
  • 离线处理
  • 由商店自己处理

因为
offline
增强器在
applyMiddleware
增强器之后,所以它内部发送的任何操作都不会经过中间件管道。

谢谢,@markerikson,您解决了这个问题并为我们节省了很多时间。好的,我们刚刚将
offline()
调用放在
applyMiddleware()之前
,它成功了。我只是忘记了它是一个堆栈,事实上医生说,谢谢:-)这对我来说很有效。特别是你的评论@Piranna。谢谢谢谢,@markerikson,您解决了这个问题,为我们节省了很多时间。好的,我们刚刚在
applyMiddleware()
之前完成了
offline()
调用,它成功了。我只是忘记了它是一个堆栈,事实上医生说,谢谢:-)这对我来说很有效。特别是你的评论@Piranna。谢谢