2015-12-13 30 views
4

我该如何处理循环从Json中检索到的结果? enter image description here循环Json&显示在React Native中

render: function() { 
    console.log(this.state.list); 
    contents = (
     <View style={ styles.content }> 
     <Text>Loaded</Text> 

     </View> 
    ) 
    return (
     <View style={ styles.container }> 
     <View style={ styles.header }> 
     <Text style={ styles.headerText }>XXX</Text> 
     </View> 
     <View style={ styles.content }> 
      { contents } 
     </View> 
     </View> 
    ); 
    } 

回答

6

阵营可以渲染元素的数组,所以你只需要构建一个数组并把它分配给您的contents变量。我用map做了一个例子。

render: function() { 
    console.log(this.state.list); 
    contents = this.state.list.results.map(function (item) { 
     return (
      <View key={item.user.email} style={ styles.content }> 
      <Text>{item.user.email}</Text> 
      </View> 
     ); 
    }); 
    return (
     <View style={ styles.container }> 
     <View style={ styles.header }> 
     <Text style={ styles.headerText }>XXX</Text> 
     </View> 
     <View style={ styles.content }> 
      { contents } 
     </View> 
     </View> 
    ); 
    } 

并且:当你有反应的元素的阵列,你应该提供一个独特的属性key到阵列中的每个元素。 See why。在这种情况下,我使用item.user.email作为唯一标识符,但是您可以使用其他属性,只需确保它是唯一的(item.user.md5是promissing)

+0

确保'this.state.list'对象始终具有'results'数组。你可以添加更多的逻辑来处理你的状态,或者添加if/else条件来获得你想要的内容。 – TrungDQ

+0

我通过使用列表初始化:{result:[]}在getInitialState – CodeGuru

+0

但我得到警告:数组或迭代器中的每个孩子应该有一个唯一的关键支柱,请咨询:) – CodeGuru