ReactJS-TypeError:无法读取未定义的属性“ 0”

学生22

我正在尝试制作一个天气应用程序,以学习一些ReactJS。

组件内部的方法中使用此访调用了OpenWeatherMap API componentDidMountWeatherCard

constructor() {
    super()
    this.state = {
        weatherData: {}
    }
}

componentDidMount() {
    fetch('//api.openweathermap.org/data/2.5/weather?q=Calgary,ca&APPID=XXX')
    .then(response => response.json())
    .then(data => {
        this.setState({
            weatherData: data
        })
    })
}

这是上述调用的示例JSON输出(给出了有效的API密钥):

在此处输入图片说明

每当我想访问天气属性时,都会收到此错误消息:

TypeError:无法读取未定义的属性“ 0”

...,我这样访问它:

this.state.weatherData.weather[0].main

如果可以解决问题,这也是我的渲染方法:

render() {
    return (
        <div>
            {this.state.weatherData.weather[0].main}
        </div>
    )
}

有人知道我遇到的问题是什么吗?非常感谢!

卡纳斯特

在第一个渲染上,请求尚未开始,因此尚无数据,您需要具有一个加载布尔值或仅在尝试访问它之前检查是否已加载数据。

render() {
    if (!this.state.weatherData.weather) {
        return <span>Loading...</span>;
    }

    return (
        <div>
            {this.state.weatherData.weather[0].main}
        </div>
    )
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

ReactJS TypeError:无法读取未定义的属性(读取“地图”)

无法读取未定义的属性'0'-卡在reactjs教程中

ReactJS“ TypeError:无法读取未定义的属性'array'”

ReactJS TypeError:无法读取未定义的属性“值”

ReactJs:TypeError:无法读取未定义的属性“ ItemsServices”

ReactJS:TypeError:无法读取未定义的属性“纬度”

ReactJS Uncaught TypeError:无法读取未定义的属性“concat”

ReactJS抛出“ TypeError:无法读取未定义的属性” latLng”

Reactjs TypeError:无法读取未定义的属性“样式”

TypeError:无法读取REACTJS中未定义的属性“值”

Reactjs:TypeError:无法读取未定义的属性“ propTypes”

reactjs:TypeError:无法读取未定义的属性'from'

ReactJS:TypeError:无法读取未定义的属性“ map”

TypeError:无法使用ReactJs读取未定义的属性“ map”

reactjs错误-TypeError:无法读取未定义的属性“地图”

Reactjs TypeError:无法读取未定义的属性“ city”

ReactJs:TypeError:无法读取未定义的属性“ PropTypes”

TypeError:无法读取未定义的--reactjs属性'props'

TypeError:无法读取未定义ReactJS的属性“ push”

TypeError:无法读取reactjs中未定义的属性'map'

TypeError:无法读取未定义的Reactjs的属性“ map”

ReactJS-TypeError:无法读取未定义的属性“ raw”

TypeError:无法读取ReactJS中未定义的属性'focus'

ReactJs-TypeError:无法读取未定义的属性“ map”

ReactJS TypeError:无法读取未定义的属性“历史”

TypeError:无法读取未定义的Reactjs的属性“ map”?

reactjs错误:TypeError:无法读取未定义的属性“ props”

Uncaught TypeError:无法读取未定义的属性“结果”-ReactJS

Reactjs:TypeError:无法读取未定义的属性“结果”