Я делаю это:
startinterval = () => {
this.interval = setInterval(this.intervalFunction, 10000)
}
clearInterval = () => {
clearInterval(this.interval)
}
но когда я вызываю функцию clearInterval, она ничего не делает, и интервал продолжается
Обращается ли this в обеих функциях к одному и тому же объекту? Скорее всего, это не так.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Если вы используете функциональные компоненты, вы можете использовать:
function MyComponent() {
const [intervalId, setIntervalId] = useState();
useEffect(() => {
let id = setInterval(() => {
//Code to do
}, 10000);
setIntervalId(id);
return () => {
clearInterval(intervalId);
};
});
return <div>UI Here</div>;
}
Если вы используете класс как компонент:
class MyComponent {
intervalId;
componentDidMount() {
this.intervalId = setInterval(() => {
//Code to do here or call another function
}, 10000);
}
componentWillUnmount() {
clearInterval(this.intervalId);
}
}
Лучше всего принять во внимание заранее, что вам нужно сохранить идентификатор для очистки тайм-аута. Если вы потеряли правильный идентификатор, функция очистки не будет работать правильно.
Как вы вызываете функцию
clearInterval()при нажатии кнопки или ||? !! покажи нам больше кода