在ReactJS

时间:2017-08-27 11:43:47

标签: reactjs

是否可以在ReactJS应用程序的后台运行任务?

我有一个由两个组件组成的应用程序。其中一个组件显示倒计时。我使用setInterval(this.updateTimer, 1000);来调用函数updateTimer来更新状态。 只要用户停留在该组件上,这就有效。如果用户更改为其他组件,则会发生以下错误: Warning: setState(...): Can only update a mounted or mounting component.

我理解错误的含义以及造成错误的原因。

我正在寻找的是在后台更新该组件的状态。 (自卸载以来无法完成。)此外,当倒计时达到0时,会显示通知。当组件未安装时,也需要进行通知。

这样的事情是否有概念/助手?我能想到的唯一解决方案是使用websocket连接。当倒计时到达0时,计时器将在后端运行并通过websocket通知前端。

1 个答案:

答案 0 :(得分:0)

是的,这里有一个解决方案,将你的计时器组件的状态推送到父组件,其中两个组件都被渲染。

传递计时器值,并通过props更新时间到计时器组件。

无需将计时器存储在后端,一切都将按预期工作。希望这有帮助