получить данные в ответных реакциях {} - PullRequest
0 голосов
/ 23 мая 2019

У меня есть компонент реагирования, и я хочу заполнить его состояние, извлекая данные из URL-адреса, который я протестировал в браузере, и возвращает данные json.но в моем коде я ничего не получил, вот мой код:

    fetch(`https://s3-us-west-2.amazonaws.com/s.cdpn.io/3/posts.json`)
      .then(response => response.json())
    //.then(data => JSON.stringify(data))
      .then(data => this.setState({
      latitude: position.coords.latitude, // this ois ok 
      longitude: position.coords.longitude, /// this is ok 
      locations : data // here I get {}
    }));

Проблема здесь в моей функции рендеринга

const { location } = this.state.locations;
alert("1" +JSON.stringify( this.state.locations));
alert("2" + JSON.stringify( location));

Первое предупреждение заполнено правильными данными, но второе предупреждение возвращает неопределенное.

1 Ответ

1 голос
/ 23 мая 2019

Похоже, вы пытаетесь деструктировать location из этого ответа:

{
  "posts": [
    {
      "_id": "5b3f761e21d434001487ad99",
      "title": "Hello Word!",
      "content": "The world is green!",
      "__v": 0
    },
    {
      "_id": "5b3f76b521d434001487ad9a",
      "title": "Sed porttitor lectus nibh",
      "content": "Sed porttitor lectus nibh. Praesent sapien massa, convallis a pellentesque nec, egestas non nisi. Pellentesque in ipsum id orci porta dapibus. Proin eget tortor risus. Pellentesque in ipsum id orci porta dapibus. Curabitur aliquet quam id dui posuere blandit. Quisque velit nisi, pretium ut lacinia in, elementum id enim. Pellentesque in ipsum id orci porta dapibus. Vestibulum ac diam sit amet quam vehicula elementum sed sit amet dui. Vestibulum ac diam sit amet quam vehicula elementum sed sit amet dui.",
      "__v": 0
    }
  ]
}

Как видите, у него нет свойства location, поэтому результат вашей деструктуры будетбыть неопределенным.Вы попали в правильную конечную точку?

...