В React Hook в useEffect отсутствуют зависимости: 'dispatch' и 'init' - при использовании useDispach в useEffect

Я пытаюсь создать какое-то состояние инициализации в redux, поэтому, когда приложение загружает, приложение будет получать некоторые данные из redux (с помощью thunk) и получать данные.

поэтому мне это нужно только один раз, и для этого я добавил [] в параметры useFffect, но получил следующую ошибку:

  Line 32:6:  React Hook useEffect has missing dependencies: 'dispatch' and 'init'. Either include them or remove the dependency array  react-hooks/exhaustive-deps

и мне не удалось вставить useDispatch в useEffect

  const { isReady } = useSelector<AppState, AppProps>((state: AppState) => {
    return {
      isReady: state.appStatus.isReady
    };
  });

  const dispatch = useDispatch();
  const init = initilizeAction();

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

person Tuz    schedule 23.02.2020    source источник
comment
В качестве обходного пути вы можете отключить его, добавив // eslint-disable-next-line no-use-before-define.   -  person norbitrial    schedule 23.02.2020


Ответы (1)


Вы можете переместить initilizeAction() в useEffect и добавить отправку в качестве зависимости (она не должна изменяться, поэтому она будет запускаться только один раз).

  const dispatch = useDispatch();

  useEffect(() => {
    const init = initilizeAction();
    dispatch(init);
  }, [dispatch]);
person Deykun    schedule 23.02.2020