You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现React应用每2秒从后端自动刷新数据

React应用定时刷新数据修改方案

核心修改逻辑

  • 保留组件首次挂载时的立即拉取逻辑
  • 新增2000ms间隔的定时器周期性触发数据拉取
  • 添加定时器清理逻辑,避免组件卸载后出现内存泄漏

修改后完整代码

import React, {useState, useEffect} from 'react';
import {Route, Switch, useLocation} from 'react-router-dom';
import Home from './Home';

function App() {
    const location = useLocation();
    console.log(location);
    const [feedbacks, setFeedbacks] = useState([]);

    useEffect(() => {
        const fetchArticles = async () => {
            setFeedbacks([]);
            try {
                const url = 'https://url.abc.com/';
                const api_response = await fetch(url);
                let data = await api_response.json();
                setFeedbacks(data);
            } catch (e) {
                // 可自行扩展请求失败的后续处理
                console.error('数据请求异常:', e);
            }
        }
        // 首次挂载立即拉取数据
        fetchArticles();
        // 启动2秒定时刷新任务
        const refreshTimer = setInterval(fetchArticles, 2000);
        // 组件卸载时清除定时器
        return () => clearInterval(refreshTimer);
    }, [])

    const data = {feedbacks};

    return (
        <div className="App">
            <Switch>
                <Route path="/" render={() => <Home data={data}/>} exact/>
                <Route path="/:username" render={() => <Home data={data}/>} exact/>
            </Switch>
        </div>
    );
}

export default App;

可选扩展

如果后续需要支持手动控制刷新的启停,可额外声明一个状态变量控制定时器的创建与销毁即可。

内容的提问来源于stack exchange,提问作者ThinkGeek

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 06:54:03