Вызывающий диспетчер в использованииEffect? - PullRequest
0 голосов
/ 27 апреля 2020

В данный момент я просто вызываю его внутри хука useEffect, не имея его в качестве зависимости, так как хочу, чтобы он запускался только один раз. Это, однако, дает React Hook useEffect has a missing dependency: 'dispatch'. Должен ли я добавить диспетчеризацию в зависимости или есть лучший способ для этого?

  useEffect(() => {
    dispatch(handleGetUser());
  }, []);

1 Ответ

1 голос
/ 27 апреля 2020

Функция отправки не изменяется между повторными рендерингами. Предупреждение eslint не знает о том, что делает каждая функция и будет ли она воссоздана или нет, и, следовательно, показывает предупреждение, чтобы предупредить пользователя, если он / она что-то пропустил

Вы можете безопасно отключить предупреждение в этом случае и не включать диспетчеризацию в качестве зависимости

  useEffect(() => {
    dispatch(handleGetUser());

    // eslint-disable-next-line react-hooks/exhaustive-deps
  }, []);

Даже если вы включите диспетчеризацию в качестве зависимости, вы не увидите побочных эффектов, поскольку диспетчеризация не изменится, если в библиотеке, предоставляющей ее, нет ошибки

...