Как может быть вызвано это пользовательское промежуточное программное обеспечение для ошибки редукции? - PullRequest
1 голос
/ 21 апреля 2019

Вот исходный код.

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

Я думал, что промежуточное программное обеспечение для резервирования расположено между store.dispatch() и reducer, который находится внутриstore.

Когда мы отправляем какое-то действие в хранилище, редуктор магазина вызывается после next().

* 1013 функции промежуточного ПО. Неправильно ли я ошибаюсь?

Но как может эта ошибкаперехват промежуточного программного обеспечения e тем не менее throw new Error("AAAAAAA") находится в функции редуктора?

Вы можете увидеть вышеупомянутое поведение в https://www.youtube.com/watch?v=DJ8fR0mZM44

В видео инструктор говорит: «Фактическая ошибка никогда не возникала", но промежуточное ПО, регистрирующее объект ошибки, не смог правильно понять.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...