Как исправить React Redux и React Hook У useEffect отсутствует зависимость: 'dispatch' - PullRequest
0 голосов
/ 11 февраля 2020

React Hook useEffect отсутствует зависимость: «диспетчеризация». Либо включите его, либо удалите массив зависимых реактив-хуков / исчерпывающее-депс

Я использую useDispatch() Хук из React Redux для функционального компонента, подобного этому:

const Component = () => {
  const dispatch = useDispatch();
  const userName = useSelect(state => state.user.name);

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

  return (
    <div>Hello {userName}</div>
  );
};

export default Component;

Как убрать это предупреждение, не удаляя массив зависимых реагирующих зацепок / исчерпывающий-deps, который может быть полезен, чтобы избежать других ошибок.

Ответы [ 3 ]

2 голосов
/ 11 февраля 2020

Чтобы избежать этого предупреждения, просто добавьте dispatch в массив зависимостей. Это не будет вызывать повторное рендеринг, поскольку значение отправки не изменится.

const Component = () => {
  const dispatch = useDispatch();
  const userName = useSelect(state => state.user.name);

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

  return (
    <div>Hello {userName}</div>
  );
};

export default Component;
0 голосов
/ 11 февраля 2020

Поздний ответ, но все голоса за первый ответ

  const dispatch = useDispatch();
  const userName = useSelect(state => state.user.name);

  useEffect(() => {
    dispatch(getUserInformation());
  }, [userId, dispatch]);
0 голосов
/ 11 февраля 2020

Вы можете добавить dispatch в квадратные скобки внутри вашего useEffect.

const Component = () => {
  const dispatch = useDispatch();
  const userName = useSelect(state => state.user.name);

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

  return (
    <div>Hello {userName}</div>
  );
};

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