2017-01-17 94 views
0

我正在尝试渲染列表中的iTunes API中的播客列表,并将它们全部显示在我的页面上。React渲染映射数组中的文本

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

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

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

回答

0

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

解决方案:

1-此添加到类,然后从文件的顶部除去名称,图像,和概要:

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

2-呼叫在构造获取数据并将其取出从渲染方法(你应该这样做,调用渲染内渲染,你会最终有一个无限循环的任何东西!):

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}) 
        }) 
      }) 
    } 
+0

嗯,返回'类型错误:未定义无法读取属性“的setState” '有没有ab我可以管理国家吗? –

+0

确定修正,请注意将this.setState替换为that.setState,并添加let that this .... – challenger