2015-11-11 28 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})'这将重新渲染与任何的数据是该行回来 –