@cloudz

Зачем передавать dispatch в зависимости хука?

Зачем передавать dispatch в зависимости хука?

Например часто вижу использование хука useEffect, в зависимостях которого указан dispatch
[arg1, arg2, dispatch], зачем это делается?

И можно ли в useEffect использовать функцию, в которой что-то диспатчится, но диспатч создать внутри функции? или правильней передать его аргументом этой функции?
Например:
someFunc () {
  const dispatch = useDispatch()
  dispatch(something)
}

useEffect(someFunc, [])
...


или же делать 
someFunc (dispatch) {
  dispatch(something)
}
useEffect(() => someFunc(dispatch), [dispatch])
  • Вопрос задан
  • 303 просмотра
Пригласить эксперта
Ответы на вопрос 1
@phillbot
Например, вам нужно передать в стейт информацию после выполнения useEffect либо после размонтирования компонента

В таком случае можно

useEffect(() => {
    let isSubscribed = true;

    getDataFetch().then((res: any) => {
      const { result, error } = res;

      if (isSubscribed) {
        getRes({
          data: result || [],
          isLoaded: true,
          error,
        });
      }
    });

    return () => {
      dispatch(universalAction("SAVE", filterData));
      isSubscribed = false;
    };
  }, [dispatch, filterData])


Где dispatch - это хук редакс
universalAction - ваш кастомный экшн, который меняет информацию в стейте
filterData - какая то переменная

Таким образом сам dispatch и информация в переменной filterData будут указаны в зависимости хука
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы