У меня есть приложение для викторин, которое я создаю, и у меня есть компонент "Вопрос". Каждый раз, когда отображается компонент вопроса, я хочу запустить 60-секундный таймер. Если пользователь не отвечает или покидает приложение, через 60 секунд я хочу перенаправить его на домашнюю страницу, где следующий пользователь сможет начать викторину с самого начала.
Еще у меня возник еще один вопрос по функции componentWillMount(). У меня есть тот же компонент вопроса, у которого есть 6 разных экземпляров или («вопросов»), как вы бы сказали. Когда я перехожу от вопроса 1 к вопросу 2, функция componentWillMount() не обновляется. Он срабатывает только при первом рендеринге этого компонента, даже если это разные экземпляры. Мне нужно убедиться, что таймер перезапускается при рендеринге каждого компонента.
Как лучше всего это сделать? Лучше всего использовать props.history.push('/').
componentWillMount(){
setTimeout(() => {
console.info('this ran')
this.props.history.push('/');
}, 60000)
}



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


Не уверен, но, возможно, есть проблема с setTimeout, цель которого - один раз инициировать событие, поэтому вы можете попробовать с setInterval, цель которого - выполнять функцию неограниченное количество раз.
Может, еще можно проверить здесь.