使用React从api获取一些数据

时间:2019-04-26 18:17:40

标签: arrays reactjs components fetch

我试图从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 个答案:

答案 0 :(得分:1)

您需要从响应对象中获取LONGLONG属性。 所以:

Data

答案 1 :(得分:0)

您正在尝试获取Data数组并将其设置为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
 })
)}