Разбор запроса Openweathermap, необработанный отказ (TypeError): невозможно прочитать свойство «скорость» неопределенного

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

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

Вот мой класс местоположения (или 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>    
        )
    }

}

person squish    schedule 02.04.2020    source источник


Ответы (1)


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

person iamwebkalakaar    schedule 02.04.2020
comment
после простого добавления быстрого window.alert(JSON.stringify(res)); это показывает мне, что я на самом деле ничего не получаю. - person squish; 03.04.2020
comment
Я не уверен, почему он возвращает пустое тело. Если я использую вызов API в своем браузере, он показывает мне детали - person squish; 03.04.2020
comment
Так что это не проблема реакции, проверьте свой API - person iamwebkalakaar; 03.04.2020
comment
Я хотел бы предложить вам, что сначала вы должны проверить свой API с почтальоном - person iamwebkalakaar; 03.04.2020
comment
Я только что вызвал точно такой же API в почтальоне, и он работает. Так что я очень смущен - person squish; 03.04.2020
comment
попробуйте добавить добавить хост перед API - person iamwebkalakaar; 03.04.2020
comment
Добавить хост? Я не слишком уверен, что это значит, извините - person squish; 03.04.2020