如何调用此自定义redux错误中间件?

时间:2019-04-21 14:35:58

标签: redux-middleware

这是源代码。

import {applyMiddleware, createStore} from 'redux'

const reducer = (state = initialState, action) => {
   ...
   if(action.type === 'E'){
      throw new Error("AAAAAAA")
   }
   return initialState;
}

const error = (store) => (next) => (action) => {
   try {
      next(action)
   } catch(e) {
      console.log("BBBBBB", e);
   }
}

const middleware = applyMiddleware(error);

const store = createStore(reducer, 1, middleware);

store.subscribe(() => {
    ...
})

store.dispatch({type: "E"})

结果为BBBBBB Error:AAAAAAA

我认为redux中间件位于商店内部的store.dispatch()reducer之间。

当我们向商店分派一些动作时,在中间件函数的next()之后调用商店的reducer。

我错了吗?

但是,错误中间件如何捕获e却位于简化程序功能中?throw new Error("AAAAAAA")

您可以在https://www.youtube.com/watch?v=DJ8fR0mZM44

中看到上述行为

在视频中,讲师说“实际错误从未触发”,但是由于中间件记录了错误对象,因此无法正确理解。

0 个答案:

没有答案