You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

React组件中,应使用哪个生命周期钩子更新API获取的数据?

React组件数据获取与状态管理实现

我帮你把这段React组件的代码和逻辑整理成清晰易读的Markdown格式,还补充了缺失的错误处理部分,让代码更健壮:

1. 组件初始状态定义

首先是组件的初始状态,包含请求URL、存储股票数据的数组,以及错误状态标识:

state = {
  url: 'someurl',
  stockData: [],
  error: false
};

2. 组件挂载时触发API请求

在组件首次挂载完成后,自动调用数据获取函数:

componentDidMount() {
  this.getDataFromApi();
}

3. API数据获取与状态更新函数

这个函数负责从API拉取数据,对返回的股票数据按**买卖价差(bid_price - ask_price)**从大到小排序,最后更新组件状态;同时添加了错误捕获逻辑,处理请求失败的情况:

getDataFromApi = () => {
  fetch(this.state.url)
    .then(res => res.json())
    .then(res => {
      // 按买卖价差降序排序结果
      const sortedRes = res["results"].sort(function(a, b) {
        return (b.bid_price - b.ask_price) - (a.bid_price - a.ask_price);
      });
      this.setState({ 
        stockData: sortedRes,
        error: false // 成功获取数据时重置错误状态
      });
    })
    .catch(err => {
      console.error('获取股票数据失败:', err);
      this.setState({ 
        error: true,
        stockData: [] // 请求失败时清空数据数组
      });
    });
}

补充说明

  • 排序逻辑:这里是计算每个股票的买卖价差(bid_price减去ask_price),然后按价差从大到小排序,让价差大的股票排在前面
  • 错误处理:通过catch捕获请求过程中的异常(比如网络错误、API返回非JSON格式数据等),同时更新error状态,方便后续在组件中展示错误提示

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

火山引擎 最新活动