2017-06-01 13 views
0

私は他のプロジェクトでListviewを使用しましたが、そこからコードをコピーしましたが、今問題に取り組んでいません。RN Listview各文字を与えられたjson文字列の行とみなして

私のサーバーから取得したセッションクラスに私がデータソースとして使用している次のjsonを持っていますが、レンダリング行は各文字を新しい行項目として取る代わりに行項目としてオブジェクトを取りません、私はデバッグ中にチェックした。次のコードを使用して、任意のヘルプでrenderRowの最初の反復で

JSON

[{"id":1,"name":null,"fullName":"Behraj Khan "},{"id":2,"name":null,"fullName":"Fareeha "},{"id":3,"name":null,"fullName":"Kashif "}] 

コード

constructor(props) { 
      super(props); 

      const ds = new ListView.DataSource({rowHasChanged: (r1, r2) => r1 !== r2}); 
      var facultyMembers; 
      if(SessionManager.getSessionValue(Constants.FACULTY_MEMBERS) !== null){ 
       facultyMembers = SessionManager.getSessionValue(Constants.FACULTY_MEMBERS); 
      } 
      this.state = { 
       dataSource: ds.cloneWithRows(facultyMembers) 
       }; 
      } 


render() { 
     return (
      <View style={styles.container}> 
       <ListView 
        style={styles.listviewcontainer} 
        dataSource={this.state.dataSource} 
        renderRow={(row) => this.renderRow(row)} 
        renderHeader={this.state.showHeader ?() => this.renderHeader(this.state.headerText) :() => { 
        }} 
        renderSeparator={(sectionId, rowId) => <View key={rowId} style={styles.separator}/>} 
       /> 
      </View> 
     ); 
    } 

renderRow = (rowData) => (
     <TouchableHighlight underlayColor='gainsboro' onPress={() => { 
      this.state.onPress(rowData) 
     }}> 
      <View style={styles.row}> 
       <Text style={styles.header}> 
        {rowData.fullName} 
       </Text> 
      </View> 
     </TouchableHighlight> 
    ); 

を理解されるI秒で[ を持って私が得{ iは"を持って第で とso on enter image description hereenter image description here

私はすでにJSONを取得して期待していたとして@MattAftと@Garrettマッカローを1として
+0

の作品'その問題を引き起こすでしょう。 JSONレスポンスをサーバーから解析したことはありますか? ds.cloneWithRows(JSON.parse(facultyMembers: –

+0

はい、私は有効なJSONを持っているが、サーバーをffrom私は@GarrettMcCulloughに同意するだけで応答、 – SSH

+1

が供給した後)、私は再チェックしていると(resp.jsonを適用し、あなたはおそらく 'DataSourceを行う必要があります)) 'あなたの状態で。 –

答えて

0

が、私はJSONに戻って文字列を解析していなかった

ので、この単純な解決策は、文字列をする `cloneWithRows渡す

ds.cloneWithRows(JSON.parse(facultyMembers)) 
関連する問題