api提取-无法读取未定义的属性“ json”

时间:2018-09-30 22:21:52

标签: javascript json reactjs api

我正在使用此API来绘制地图,并且在获取数据时出错时实施了一些验证。实施此解决方案时,出现错误:

  

未处理的拒绝(TypeError):无法读取未定义的属性'json'

componentDidMount() {
    fetch('https://api.citybik.es/v2/networks')
        .then(res => {                        // *** implemented this
            if (!res.ok) {                    // ***
                throw new Error(res.status);  // ***
            }                                 // ***
        })
        .catch(error => {
            console.log(error);
        })
        .then(res => res.json()) // *** error in this line
        .then(response => {
            const networkData = response.networks;
            this.setState({
                bikeData: networkData
            });
        })
    }

谢谢!

1 个答案:

答案 0 :(得分:2)

为了继续promise链接,您应该为下一个.then方法返回一个值。因此,您在第一个.then方法中缺少此返回值。正如@jonrsharpe在评论中解释的那样,您可以将其组合。

componentDidMount() {
  fetch("https://api.citybik.es/v2/networks")
    .then(res => {
      if (!res.ok) {
        throw new Error(res.status);
      }
      return res.json();
    })
    .then(response => {
      const networkData = response.networks;
      this.setState({
        bikeData: networkData
      });
    })
    .catch(error => {
      console.log(error);
    });
}