Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Looping Json & Display in React Native

How do I go about looping the result i retrieved from Json? enter image description here

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>
    );
  }
like image 278
CodeGuru Avatar asked Dec 13 '15 15:12

CodeGuru


1 Answers

React can render an array of Elements, so you just need to construct an array and assign it to your contents variable. I made an example using 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>
    );
  }

And also: when you have an array of elements in React, you should provide a unique key attribute to each element in the array. See why. In this case, I use item.user.email as the unique identifier, but you can use another attribute, just make sure it unique (item.user.md5 is promising)

like image 172
Tony Dinh Avatar answered Sep 28 '22 18:09

Tony Dinh