【问题标题】:Cannot fetch data before render渲染前无法获取数据
【发布时间】:2019-08-09 12:53:53
【问题描述】:

我尝试在渲染之前使用 axios 获取数据。我正在使用 axios 并在 ComponentDidMount 中获取数据。我也尝试进入 Component WillMount 但仍然无法解决这个问题我该如何解决????

我也尝试进入 Component WillMount 但仍然无法正常工作,我需要渲染之前的数据,因为我必须传递给另一个组件。 之后我放了一个按钮,从加载的网站几秒钟后它按预期工作

componentDidMount() {
    axios
      .get(
        "https://us-central1-punjabi-music-downloader.cloudfunctions.net/getTracks"
      )
      .then(res => this.setState({ tracks: res.data }));
  }
  render() {
    return (
      <div>
        <h1>Music tracks</h1>
        {this.state.tracks[0].name}
      </div>
    );
  }

我收到.name is not defined

【问题讨论】:

  • 为什么需要在渲染前获取数据,而不是在获取数据后重新渲染?我的意思是组件应该同时呈现“加载”和“加载”状态?

标签: reactjs axios fetch


【解决方案1】:

你只需要检查数据是否可用然后你只需要像这样设置它

{this.state.tracks && this.state.tracks.length > 0 ? <span>this.state.tracks[0].name</span> : null}

【讨论】:

  • 哈哈,我也试过这个,但我没有写出条件(我还在上高中)。总之非常感谢。我从 2 天开始就在尝试
猜你喜欢
  • 2019-12-31
  • 2021-05-11
  • 2020-12-12
  • 2019-02-08
  • 2019-01-11
  • 2019-04-28
  • 2016-08-02
  • 2018-02-19
  • 2015-01-26
相关资源
最近更新 更多