【发布时间】:2018-07-04 12:41:32
【问题描述】:
我有这个 React Native 应用程序和 redux,其中所有 HTTP 请求都是通过使用 redux-promise-middleware 的异步操作执行的。
现在我想处理 API 可以发送的每个错误,为此我正在实现一个 redux 中间件,该中间件将拦截 XXX_REJECTED 类型的每个操作(因为redux-promise-middleware 调度 _REJECTED 操作时异步操作失败)。
但是现在我遇到了这个问题...在中间件中,我希望能够调度一个新动作(例如 API_ERROR)并且仍然能够为原始动作执行 next()(@987654327 @)。
这是我的中间件:
export default ({ dispatch }) => next => (action) => {
if (action.type.match(/w*(_REJECTED)/)) {
dispatch({
type: 'API_ERROR',
payload: action.payload,
})
}
next(action)
}
但是使用此代码,一旦分派了新操作,next() 就永远不会执行。
这有意义吗?是否可以在一个中间件中分派多个操作?
【问题讨论】:
标签: javascript reactjs redux action middleware