我有一个我正在创建的测验应用程序,我有一个问题组件。每次问题组件呈现时,我想启动60秒计时器。如果用户没有应答或离开应用程序,60秒后我想将它们重定向到主页,下一个用户可以从头开始测验。
我还有另一个关于componentWillMount()
功能的问题。我有同样的问题组件有6个不同的实例或('问题'),你会说。当我从问题1到问题2时,componentWillMount()
函数不会重新启动。它仅在该组件的第一个渲染时触发,即使它们是不同的实例。我需要确保计时器在每个组件渲染时重新启动。这样做的最佳方式是什么?是否最好使用props.history.push('/')
。
componentWillMount(){
setTimeout(() => {
console.log('this ran')
this.props.history.push('/');
}, 60000)
}
不确定,但也许setTimeout存在问题,其目的是触发事件一次,因此您可以尝试使用setInterval,其目的是执行函数无限次。
也许你可以查看更多here。