2017-02-28 4 views
1

反応ネイティブアプリケーションを実行しました2ページを使用しましたが、両方のページがlistViewコンポーネントで使用されていましたが、1ページが正しく実行されていて同じ機能が別のページで使用されましたが、 enter image description hereネイティブリストビューの問題

StaticRenderer.render(): A valid React element (or null) must be returned. You may have returned undefined, an array or some other invalid object.

ページ1コード

AsyncStorage.getAllKeys().then((value) => { 
     var arr = []; 
     for(var i=0;i<value.length;i++){ 
      if(value[i] != "userName"){ 
       arr.unshift(value[i]); 
      } 
     } 
     this.setState({ 
      ds: arr 
     }) 
     this.setState({ 
      dataSource:this.state.dataSource.cloneWithRows(this.state.ds), 
     }) 

    }).done(); 

2ページコード

AsyncStorage.getItem("userName").then((value) => { 
     var data = JSON.parse(value); 
     var arr = []; 
     if(data != null){ 
      for(var i=0;i<data.length;i++){ 
       arr.unshift(data[i]); 
      } 
     } 
     this.setState({ 
      ds: arr 
     }) 
     this.setState({ 
      dataSource:this.state.dataSource.cloneWithRows(this.state.ds), 
     }) 
    }).done(); 

2ページのListView

<ListView 
         dataSource = {this.state.dataSource} 
         renderRow = {this.renderRow.bind(this)} 
         enableEmptySections = {true}> 
        </ListView> 
+0

レンダリングメソッドを共有できますか?このコードは明確ではありません。 –

答えて

1

何かが間違っているとdataあなたは2

が配列されているページに乗りますか?もしそうなら、それをループしてunshiftを逆にしますか?その場合はreverse()を使用できます。

私の推測によれば、JSON.parse(value)はオブジェクトを返します。ちょうどconsole.logarrという変数があり、それがdataSourceが期待するものかどうかを確認してください。

関連する問題