2017-01-17 138 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