Почему для первого параметра useReducer установлено значение «Диспетчеризация»? - PullRequest
0 голосов
/ 07 апреля 2019

Код ниже действует как useState (то есть useReducer), но я не могу найти документ, объясняющий почему. Однако я понял это с помощью отладчика.

const reducer = (state,action) => {
  return action;
};

const [email,setEmail] = useReducer(reducer,"");

1 Ответ

1 голос
/ 07 апреля 2019

Это из-за того, как был написан редуктор:

const reducer = (state,action) => {
  return action;
};

Отправленное значение принимается как второй action параметр в редукторе.Новое состояние устанавливается в значение, которое было возвращено из редуктора, то есть action.Таким образом, useReducer функция отправки работает так же, как useState установщик состояний.Это примерно то, что происходит внутри useState, поскольку он использует useReducer для внутреннего использования.

Он будет вести себя иначе, если будет возвращено что-либо, кроме action.

...