脚本宝典收集整理的这篇文章主要介绍了react 中使用setTimeout,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
React中使用setTimeout
setTimeout做轮询
componentWillUnmount() {
this.state.brush && clearTimeout(this.state.brush)
}
2.this.state.brush是指向定时器的指针 每次 setTimeout执行都需要更新这个指针
brushData = (time = this.state.brushtime, formdata = {
wfid: this.state.wfid,
begintime: this.state.time
}) => {
var brush = setTimeout(this.brushData, time * 5 * 1000);
this.setState({brush})
@H_360_55@// 只有在表格数据返回之后才能再请求数据
this.state.tableLoading || this.getPageData({...formdata}, true)
}
目标
使用setTimeout获取数据
- 请求数据的方法
getPageData = (formdata, brushing) => {
// brushing 如果是自动轮询获取数据则brushing值为true 避免请求数据陷入死循环 这一步只能有submint事件触发 因为要更新表单值
if (this.state.brushtime && !brushing) {
// 保存表单值 以便setTImeout的回调函数(其实也就是getPageData)能取得请求数据时的参数
formdata && this.setState({wfid: formdata.wfid, time: formdata.begintime});
this.brushData(this.state.brushtime);
} else {
this.setState({tableLoading: true})
if (!formdata) {
// 初次加载
} else {
// 缓存当前页面选择的时间
}
}
}
- 循环的方法
// brushData是回调函数 所以参数只能在当前作用域中取得
brushData = (time = this.state.brushtime) => {
var brush = setTimeout(this.brushData, time * 5 * 1000);
this.setState({brush})
// 只有在表格数据返回之后才能再请求数据 并且在刷新页面数据的时候表单值传入null使请求数据的函数直接从state中取相应的表单值
this.state.tableLoading || this.getPageData(null, true)
}
以上是脚本宝典为你收集整理的react 中使用setTimeout全部内容,希望文章能够帮你解决react 中使用setTimeout所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。