如果我需要从获取中渲染数据怎么办?

时间:2019-02-14 13:39:14

标签: reactjs

我的render方法中需要从API获取的数据。我收到错误: “无法在已卸载的组件上执行React状态更新。这是无操作,但是它指示您的应用程序中发生内存泄漏。要修复,取消componentWillUnmount方法中的所有订阅和异步任务”。

有没有办法等到响应准备好后再调用render方法?

1 个答案:

答案 0 :(得分:0)

componentDidMount()生命周期方法是获取数据的最佳位置。在render方法中,您可以检查是否已设置数据,然后显示结果,如果结果为null,则显示微调框。

import React, { Component } from 'react';

class App extends Component {
  constructor(props) {
    super(props);

    this.state = {
      data: null,
    };
  }

  componentDidMount() {
    fetch('https://api.mydomain.com')
      .then(response => response.json())
      .then(data => this.setState({ data }));
  }

  ...
}

export default App;

您可以在https://www.robinwieruch.de/react-fetching-data/

中找到更详细的描述