2017-02-28 4 views
1

Ich habe die reaktive native Anwendung ausgeführt Ich habe die 2 Seiten beide Seiten verwendet die listView Komponente, aber 1 Seite lief korrekt und die gleiche Funktionalität sind auf einer anderen Seite verwendet, aber es hat den folgenden Fehler zurückgegeben enter image description hereReact native - listview Problem

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

Seite 1 Code

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(); 

Seite 2 Code

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(); 

Page 2 listview

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

Können Sie Ihre Rendermethode teilen? Dieser Code ist nicht genau bekannt. –

Antwort

1

Irgendwas stimmt nicht mit der data Sie auf Seite abrufen 2.

es ist ein Array? Wenn ja, überspringst du es einfach und machst das unshift, um es umzukehren? Wenn das der Fall ist, können Sie reverse() verwenden.

Meine Schätzung ist, dass JSON.parse(value) Objekt zurückgibt. nur console.log die arr Variable und sehen, ob es das ist, was die DataSource erwartet.

Verwandte Themen