Должно ли промежуточное ПО redux «возвращаться» следующим или это неявно?

#redux #middleware

#redux #промежуточное ПО

Вопрос:

У меня есть немного кода, который выглядит примерно так

 export default function fooMiddleware({ dispatch, getState }) {
  return next => action => {
    if (type === TYPES.REGISTER_FOO_INITIALIZED) {
      next(action); // return next?
    }

    if (someOtherCondition) {
        dispatch(ACTIONS.loadDates());
      }
    }

    next(action);
  };
}
 

Нужно ли мне явно next использовать функции (а именно первую) return или это не имеет значения в данном случае.

Ответ №1:

Нет, это не неявно. Это просто обычная функция. Если вы на самом деле ничего не return делаете, это то же самое, что return undefined .

Хорошее промежуточное программное обеспечение Redux всегда должно возвращать результат next(action) , если только оно специально не пытается переопределить возвращаемое значение и заменить что-то другое (или перехватывает действие и вообще не передает его). В противном случае более позднее промежуточное программное обеспечение, которое пытается что-то вернуть, никогда не будет возвращать это значение, как предполагалось.