Получить некоторые данные из API с помощью React - PullRequest
0 голосов
/ 26 апреля 2019

Я пытаюсь получить некоторые данные из API, но по какой-то причине это не работает, я также пытался с Object.key.

Я пару раз делал api, но я думаю, что нетне понимаю этот формат JSON

Вот мой код:

class CryptoNews extends Component {
    constructor(props){
        super(props);
        this.state = {
            news: []
        }
    }

    componentDidMount(){
fetch('https://min-api.cryptocompare.com/data/v2/news/?feeds=cryptocompare,cointelegraph,coindesk&extraParams=YourSite')
.then(res => res.json())
.then(data => this.setState({
    news: data
})
)}

  render() {
    return (
      <div>
        {this.state.news.map((key) => (
            <div key={key.id}>
            <h2>{key.body}</h2>
        </div>
        ))}
      </div>
    )
  }
}

Ответы [ 2 ]

1 голос
/ 26 апреля 2019

Вам необходимо взять свойство Data из объекта ответа.Итак:

news: data.Data
0 голосов
/ 26 апреля 2019

Вы пытаетесь получить массив данных и установить его в this.state.news.

Формат сообщения JSON выглядит следующим образом.

{
 "Type":100,
 "Message":"News list successfully returned",
 "Promoted":[],
 "Data":[],
 "RateLimit":{},
 "HasWarning":false
}

Ваш метод componentDidMount должен выглядеть следующим образом

componentDidMount(){
 fetch('https://min-api.cryptocompare.com/data/v2/news/? 
 feeds=cryptocompare,cointelegraph,coindesk&extraParams=YourSite')
 .then(res => res.json())
 .then(data => this.setState({
    news: data.Data
 })
)}
...