React中使用setTimeout

setTimeout做轮询

React由于是在内存中运行,所以即使是DOM对象已经被销毁了,如果在组件卸载(componentWillUnmount)的时候没有清楚掉定时器, 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})

// 只有在表格数据返回之后才能再请求数据

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相关推荐

  1. react中settimeout_react 中运用setTimeout

    React中运用setTimeout setTimeout做轮询 React由因而在内存中运转,所以即使是DOM对象已被销毁了,如果在组件卸载(componentWillUnmount)的时刻没有清晰 ...

  2. react中使用scss_我如何将CSS模块和SCSS集成到我的React应用程序中

    react中使用scss by Max Goh 由Max Goh 我如何将CSS模块和SCSS集成到我的React应用程序中 (How I integrated CSS Modules with SC ...

  3. vue和react相同点_我在React和Vue中创建了相同的应用程序。 这是区别。

    vue和react相同点 by Sunil Sandhu 由Sunil Sandhu 我在React和Vue中创建了相同的应用程序. 这是区别. (I created the same app in ...

  4. javascript中for循环和setTimeout同时使用,出现的问题

    javascript中for循环和setTimeout同时使用,出现的问题 for循环代码 <!DOCTYPE html> <html lang="en"> ...

  5. React项目开发中的数据管理

    原文链接:https://blog.csdn.net/hl582567508/article/details/76982756 redux中文文档:http://cn.redux.js.org/ Re ...

  6. react 交互_如何在React应用程序中跟踪用户交互

    react 交互 by Faouzi Oudouh 通过Faouzi Oudouh 如何在React应用程序中跟踪用户交互 (How to track user interactions in you ...

  7. [react] 在构造函数中调用super(props)的目的是什么?

    [react] 在构造函数中调用super(props)的目的是什么? 这是ES6的语法.class组件继承自React.Component,super(props)之后,有以下几个作用: 初始化pr ...

  8. [react] React的render中可以写{if else}这样的判断吗?

    [react] React的render中可以写{if else}这样的判断吗? 不可以,可以用 三元运算符或者 与运算符操作 个人简介 我是歌谣,欢迎和大家一起交流前后端知识.放弃很容易, 但坚持一 ...

  9. [react] 在JSX中如何写注释?

    [react] 在JSX中如何写注释? {/* A JSX comment */} 个人简介 我是歌谣,欢迎和大家一起交流前后端知识.放弃很容易, 但坚持一定很酷.欢迎大家一起讨论 主目录 与歌谣一起 ...

最新文章

  1. 使用maven profile 构建不同环境引用不同的值
  2. bae java_有人在BAE开发过java-tomcat应用吗?数据库老是链接失败
  3. PNAS:微生物组分析揭示人类皮肤的独特性
  4. MongoDB之python简单交互(三)
  5. php什么框架性能高,主流PHP框架性能比较
  6. Python 堡垒机介绍
  7. 深入浅出SharePoint2010——附录:常用术语对照
  8. OpecCV颜色分割
  9. comment.html手机文件,comment.html
  10. 多年来这伙黑客都在通过木马化黑客工具攻击另一伙黑客
  11. falsk 项目中日志设置
  12. Linux Desktop Entry 文件深入解析
  13. 直播APP开发如何得到用户青睐?
  14. 网易公开课中英字幕文件合并代码
  15. 迅雷、旋风、快车的下载地址加密算法解析
  16. leetcode 717. 1比特与2比特字符(python)
  17. 如何使用智能手机控制PlayStation 4
  18. NY171 聪明的KK
  19. 特斯拉AI Day:车企能造好机器人吗?
  20. 复化柯特斯matlab,基于牛顿‑柯特斯公式构造背景值的GM(1,1)模型预测方法与流程...

热门文章

  1. 移相器——有源移相器近年进展
  2. Linux命令行查看图像
  3. 深入Quartz,优雅地管理你的定时任务
  4. 【微信错误】微信开发者工具,鼠标在模拟器上消失
  5. 有没有治疗幽门螺旋杆菌的特效药?
  6. 实战HackTheBox里的Heist
  7. Honey Heist(mcpc2017 )
  8. 关于offsetParent
  9. iptables面试题
  10. 关于LightGBM算法基本原理概述