2016-05-17 89 views
4

如果远程图像失败,是否可以加载本地图像?加载远程图像后加载本地图像失败

例如,我有以下代码:

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

在情况下,例如我没有权限访问http://example.com/my_image.jpg,我会在onError得到一个错误。有没有办法加载本地图像呢?

回答

7

使用组件的状态。在您的构造函数中设置初始网址:

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

创建onError处理程序:

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

然后结合在一起说明了一切:

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

我已经尝试过了,onError的从未被称为iOS版。我试过404错误的img链接。 – TomSawyer

+0

如果我们从数组中获取图像,而不是我们如何使用this.state = {image:{uri:'http://example.com/my_image.jpg'}} –