Разбор запроса Openweathermap, необработанное отклонение (TypeError): невозможно прочитать свойство 'speed' из неопределенного - PullRequest
1 голос
/ 02 апреля 2020

Я пытаюсь получить доступ к API openweathermaps, чтобы получить скорость ветра в определенном месте. Но это каждый раз выдает ошибку.

Необработанный отказ (TypeError): невозможно прочитать свойство 'speed' из неопределенного

Вот мой класс местоположения (или Spot, как я его назвал):

import React, { Component, setState } from 'react'
import { Map, TileLayer, Marker, Popup } from 'react-leaflet';
import L from 'leaflet';
import axios from 'axios';

var owmApiKey = 'HIDDEN FROM STACKOVERFLOW';

var myIcon = L.icon({ //SETS UP THE PIN ICON THAT IS USED TO PLOT MARKERS ON THE MAP
    iconUrl: 'https://cdn0.iconfinder.com/data/icons/small-n-flat/24/678111-map-marker-512.png',
    iconSize: [41,41],
    iconAnchor: [12.5,41],
    popupAnchor: [0, -41]
});

export default class Spot extends Component {

    constructor(props) {
        super()
        this.state = {
            county_name: props.county_name,
            latitude: props.latitude,
            longitude: props.longitude,
            spot_id: props.spot_id,
            spot_name: props.spot_name,
            wind_speed: 0,
        }
    }

    getWindSpeed = (lon, lat) => {//THE FUNCTION TO POPULATE THE LIST OF SPOTS USING AXIOS
            fetch(`api.openweathermap.org/data/2.5/weather?lat=${this.state.latitude}&lon=${this.state.longitude}&appid=${owmApiKey}`)
            .then(res => {
                this.setState({
                    wind_speed: res.wind.speed
                });
            });
    }

    componentDidMount() {
        this.getWindSpeed();
    }

    render() {
        return(
        <Marker position={[this.state.latitude,this.state.longitude]} icon={myIcon}>
            <Popup>
                {this.state.spot_name + ", " + this.state.county_name + " Wind Speed: " + this.state.wind_speed}
            </Popup>
        </Marker>    
        )
    }

}

1 Ответ

1 голос
/ 02 апреля 2020

Вы уверены, что получаете свойство speed в своем res.wind? Если вы не возражаете, можете также отправить res, который вы получите от вашего API.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...