在映射数组中反映渲染文本

时间:2017-01-17 21:17:31

标签: javascript node.js reactjs

我目前正在尝试从列表中的iTunes API中呈现播客列表,并在我的页面上显示所有这些播客。

这是我的代码:https://gist.github.com/JelaniThompson/bd5d9127b80641b4483b9273f97df289

在第24行,我定义了我的显示变量,然后在return语句中呈现它,但它没有出现。但是,当我将相同的值记录到控制台时,所有的节目名称都会出现。

在页面上显示数组值的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

当然不会! 那是因为名字是一个空数组!

解决方案:

1-将此添加到类中,并从文件顶部删除名称,图像和摘要:

constructor(props){
  super(props)  
  this.state = {
    names : [],
    images : [],
    summaries : []
  } 
}

2-在构造函数中调用获取数据并将其从render方法中删除(你不应该在render中调用render,你最终会有一个无限循环!):

 constructor(props){
          super(props)  
          this.state = {
            names : [],
            images : [],
            summaries : []
          } 

          let that = this
          fetch(topFifty).then(function(response) {
                    return response.json().then(function(json) {
                        let names = [], images = [], summaries = []
                        json.feed.entry.forEach(function(datum) {
                            names.push(datum["im:name"].label)
                            images.push(datum["im:image"][0].label)
                            summaries.push(datum.summary.label)
                        })
                        that.setState({names:names,
                                      images: images,
                                      summaries: summaries})
                    })
           })
    }