Я хочу иметь возможность запускать setInterval при запуске приложения, но также приостанавливать его и перезапускать setInterval с событием onMouseEnter. Прямо сейчас я отправил sendInterval в жизненный цикл componentDidMount:
componentDidMount() {
this.timer = setInterval(() => {
this.forward();
}, 4000);
}
Я знаю, что это не работает.
Я попытался обернуть setInterval в оператор if, который будет выполняться, когда я завис над компонентом, но когда компонент монтируется, я не зависаю, поэтому он не запускается. И componentDidMount срабатывает только один раз, поэтому я не уверен, как бы приостановить setInterval, если componentDidMount срабатывает только один раз.
Я также пытался создать отдельную функцию таймера вне componentDidMount, которая срабатывает при помощи componentDidMount, но по сути я столкнулся с той же проблемой. Я чувствую, что рекурсию нужно где-то здесь использовать. Я не знаю, где бы я вызвал функцию, которая запускает setInterval где-нибудь еще, кроме componentDidMount, но тогда у меня нет доступа к нему снова. Или я?