2017-01-18 84 views
1

我有一个本地映像,我用它作为背景映像。它在其余内容之后加载大约一秒钟。React本地本地映像在内容后加载一秒

<Image source={require('./assets/climbing_mountain.jpeg')} style={styles.imageContainer}> 

imageContainer: { 
    flex: 1, 
    width: null, 
    height: null, 
} 

有没有加载图像后加载内容的方法?我尝试使用onLoadonLoadEnd道具,但是在图片加载之前它们被解雇了。

回答

1

是有..它不是那么简单其实,你将需要使用图片的预取..检查此链接:React Image prefetch

或者实际上你可以试试这个:

<Image 
    onLoadEnd={()=>this.setState({loadEnd:true})} 
    source={require('./assets/climbing_mountain.jpeg')} 
    style={styles.imageContainer}> 

,并在渲染方法,你可以做一些我不真的推荐的东西:

render(){ 
    if(!this.state.loadEnd) { 
    return(
     <Image 
     key='image_key' 
     onLoadEnd={()=>this.setState({loadEnd:true})} 
     source={require('./assets/climbing_mountain.jpeg')} 
     style={styles.imageContainer}> 
    ) 
    }else { 
    return (
     <View> 
     .... 
     <Image 
     key='image_key' 
     onLoadEnd={()=>this.setState({loadEnd:true})} 
     source={require('./assets/climbing_mountain.jpeg')} 
     style={styles.imageContainer}> 
     </view> 
     .... 
    ) 
    } 
} 
+0

谢谢@challenger!我实现了你的第二种方法,但是正如你所说的那样,这不是很理想,所以我会用另一种方式来实现。 –