是否可以在ReactJS应用程序的后台运行任务?
我有一个由两个组件组成的应用程序。其中一个组件显示倒计时。我使用setInterval(this.updateTimer, 1000);
来调用函数updateTimer
来更新状态。
只要用户停留在该组件上,这就有效。如果用户更改为其他组件,则会发生以下错误:
Warning: setState(...): Can only update a mounted or mounting component.
我理解错误的含义以及造成错误的原因。
我正在寻找的是在后台更新该组件的状态。 (自卸载以来无法完成。)此外,当倒计时达到0时,会显示通知。当组件未安装时,也需要进行通知。
这样的事情是否有概念/助手?我能想到的唯一解决方案是使用websocket连接。当倒计时到达0时,计时器将在后端运行并通过websocket通知前端。
答案 0 :(得分:0)
是的,这里有一个解决方案,将你的计时器组件的状态推送到父组件,其中两个组件都被渲染。
传递计时器值,并通过props更新时间到计时器组件。
无需将计时器存储在后端,一切都将按预期工作。希望这有帮助