2015-11-11 62 views
0

想,我越來越JSON數組,並希望的setState因爲我得到我的組件陣列。從JSON陣列獲取的數據和設置狀態作出反應

 for(var follower_id = 0; follower_id < followers_data.length; follower_id++) { 
      this.setState({ 
      followers_data_username[followers_data_username.length] = followers_data[follower_id].login 
      }); 
      console.log(followers_data_username[0]); 
     } 

但我不知道如何設置我的getInitialState,如果我要使用數組。另外,我不認爲我可以setState的一個數組。

我是新來的反應。所以,任何幫助或指向正確的方向將不勝感激。

考慮JSON是與此類似:https://api.github.com/users/ghoshnirmalya/followers

+0

你爲什麼要試圖爲json數組中的每個元素設置一個狀態?這只是要覆蓋上一行的任何數據......你是否想在前端列出一張表? –

+0

是的。我試圖從json獲取所有數據並列出一張表。什麼是最好的方式來做到這一點? –

+0

是這個es6語法嗎?你看過反應例子嗎? –

回答

1

,你應該在你的數據使用地圖功能,像這樣

render(){ 
    let rows = this.state.followers_data.map((follower, i) => <TableRow follower={follower} key={i} />); 

    return (
     <table> 
      <tbody>{rows}</tbody> 
     </table> 
    ); 
} 

和你排組成部分將是這個樣子..

const TableRow = (props) => { 
    return (
     <tr> 
      <td>{this.props.follower.login}</td> 
     </tr> 
    ); 
}; 

現在這只是一個基本的例子......你需要模擬它爲你的項目工作..但你應該遵循這個模式爲所有的j兒子數據...你有一張桌子,你在tbody中渲染行......這是從數組中的每個json對象生成的組件數組。

+0

如果我使用** onClick **函數從另一個URL加載JSON,該怎麼辦?這是否也適用於該場景? –

+0

@NirmalyaGhosh是的,這就是我期待你有你的..功能的onClick應該叫'this.setState({followers_data:whatever_your_data_is})'這將重新渲染與任何的數據是該行回來 –