首页 > 解决方案 > 与计时器反应所有 x 秒

问题描述

我正在使用 react 16.12.0 和 react.component。

我有一个定时器功能,每 6 秒运行一次。每 6 秒我向服务器询问信息:

timer(): void {

this.setState({time: new Date()});

this.sendFunction({
    method: 'post',
    url: 'getDataFromServerAfterTimeX',
    data: {
        "timestamp": this.state.lastUpdate,
    }
}, "getDataFromServerWithChangesAfter");
}

setState现在的问题是,由于计时器函数中的调用,react 每 6 秒重新渲染一次。

计时器值永远不会在任何地方显示给用户。它仅用于保存当前时间,当服务器向客户端发送一些信息时,值 lastUpdate 将更新为value-timer.

如何防止每 6 秒重新渲染一次?

我试过了,shouldComponentUpdate但这个函数没有用,因为我必须检查每个状态变量是否发生了变化。当任何状态变量发生变化时,react 应该渲染,否则只有值timer发生变化,所以返回 false。但我有大约 50 个状态变量。我无法每 6 秒检查一个值是否已更改。

任何人都可以给我一个建议。谢谢

标签: javascriptreactjs

解决方案


然后不要将其用作状态变量,而是将其设为局部变量。关闭可以提供帮助。你能显示代码吗?


推荐阅读