2016-05-17 4 views
4

Ist es möglich, ein lokales Image zu laden, wenn das Remote-Image fehlgeschlagen ist?Laden Sie ein lokales Bild nach dem Laden eines Remote-Image fehlgeschlagen

Zum Beispiel habe ich den folgenden Code:

<Image style={ styles.userImage } 
     source={ { uri: http://example.com/my_image.jpg } } 
     onError={(error) => ...} 
/> 

Falls zum Beispiel habe ich nicht die Rechte für den Zugriff http://example.com/my_image.jpg, werde ich einen Fehler in onError bekommen. Gibt es eine Möglichkeit, stattdessen ein lokales Bild zu laden?

Antwort

7

Status der Komponente verwenden. In Ihrem Konstruktor gesetzt Anfangs url:

this.state = { image: { uri: 'http://example.com/my_image.jpg' } } 

erstellen onError Handler:

onError(error){ 
    this.setState({ image: require('your_local_image.path')}) 
} 

und kombinieren es dann alle zusammen:

<Image style={ styles.userImage } 
     source={ this.state.image } 
     onError={ this.onError.bind(this) } 
/> 
+0

ich es und onError hat versucht, noch nie gerufen, iOS. Ich habe einen IMG Link mit 404 Fehler versucht. – TomSawyer

+0

Wenn wir ein Bild aus einem Array erhalten, wie wir es verwendet haben.state = {image: {uri: 'http://example.com/my_image.jpg'}} –