在setTimeout循环中调用dispatch时,内存使用量会增加

时间:2016-03-11 22:26:35

标签: reactjs redux

我有一些功能,可以连续调用dispatch来从DB中提取数据。代码看起来类似于下面的代码段:

componentWillMount()
  {
    this.startPoll();
  }

  startPoll() {
    console.log('StartPoll called!');
    this.props.dispatch({type: 'TEST'});
    setTimeout(this.startPoll.bind(this), 150000);
  }

有了这个,我发现Chrome中的内存使用量(Shift + Escape)不断上升并达到几百MB,最终应用程序无法响应。其他浏览器也是如此。

如果我在循环中调用常规函数而不是调度,我看不到内存使用量的增加。

我是javascript和react / redux的新手,所以可能会遗漏一些基本的东西。对此有任何帮助表示赞赏!

1 个答案:

答案 0 :(得分:1)

问题的原因是我在项目中启用了DevTools。正如预期的那样,Devtools会跟踪自应用程序启动以来的每个状态变化。关闭它解决了这个问题!!