2017-11-09 3 views
0

Nach einer REST-Anfrage möchte ich prüfen, ob die ListView-dataSource Daten empfangen hat. Mein Code sieht so etwas wieÜberprüfen, ob ein ListView keine Daten enthält

if(this.state.dataSource.length == 0){ 
     return (
     <Text> No data </Text> 
    ); 

ich immer einen Fehler sagt mir, dass this.state.dataSource.length nicht definiert ist. Sie können ein minimales Beispiel in diesem snack finden.

+0

Sie sollten 'FlatList' übrigens verwenden. 'FlatList' ist einfacher zu verwenden und hat eine bessere Leistung; 'ListView' wird veraltet sein. – MattyK14

Antwort

3

Sie können es tun:

if (this.state.dataSource && this.state.dataSource.length == 0) { 
    // your code 
} 
+0

Dies funktioniert nicht, Sie können es überprüfen, den Snack, ich habe es aktualisiert. –

+0

@ j.doe, stellen Sie dann zuerst sicher, this.state.dataSource ist entweder Zeichenfolge oder Array –

+0

Funktioniert immer noch nicht –

1

Sie wollen sicherstellen, this.state.dataSource hat auf ein leeres Array initialisiert wurde, wenn die Komponente erstellt wird. Auf diese Weise ist this.state.dataSource.length === 0 solange wahr, bis Ihre Daten abgerufen werden.

+0

Ich habe das überprüft und es funktioniert immer noch nicht, ich habe den Snack aktualisiert –

Verwandte Themen