Нужно ли использовать useRef Hook для установки и очистки интервалов в React? - PullRequest
0 голосов
/ 06 июля 2019

В настоящее время я понимаю хук useRef и его использование.Доступ к DOM - довольно простой пример использования, который я понял.Второй вариант использования - ссылка ведет себя как поле экземпляра в компонентах класса.И реагирующий документ предоставляет пример установки и очистки временного интервала из обработчика щелчков.Я хочу знать, если отмена временного интервала из обработчика щелчков не требуется, можем ли мы установить и очистить интервалы с локальными переменными, объявленными в useEffect, как показано ниже?Или использование ссылки, как упомянуто в документации, всегда является подходом?

useEffect(() => {
 const id = setInterval(() => {
  // ...
  });
  return () => {
    clearInterval(id);
  };
})

1 Ответ

0 голосов
/ 06 июля 2019

Как указано в ваших документах ;

Если бы мы просто хотели установить интервал, нам не понадобился бы реф (идентификатор мог быть локальным для эффекта).

  useEffect(() => {
    const id = setInterval(() => {
      setCounter(prev => prev + 1);
    }, 1000);
    return () => {
      clearInterval(id);
    };
  });

но это полезно, если мы хотим очистить интервал от обработчика события:

// ...
function handleCancelClick() {
  clearInterval(intervalRef.current);
}
  // ...
...