React native React本地图像在内容之后加载第二个

React native React本地图像在内容之后加载第二个,react-native,react-native-android,React Native,React Native Android,我有一个本地图像,我正在使用作为背景图像。它在其余内容之后加载大约一秒钟 <Image source={require('./assets/climbing_mountain.jpeg')} style={styles.imageContainer}> imageContainer: { flex: 1, width: null, height: null, } 图像容器:{ 弹性:1, 宽度:空, 高度:空, } 有没有办法在加载图像后加载内容?我试过使用和

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

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

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

图像容器:{
弹性:1,
宽度:空,
高度:空,
}

有没有办法在加载图像后加载内容?我试过使用和道具,但它们在加载图像之前就被触发了。

是的,有。。其实并不是那么简单,你需要使用图像预取。。检查此链接:

或者你可以试试这个:

    <Image
     onLoadEnd={()=>this.setState({loadEnd:true})}
     source={require('./assets/climbing_mountain.jpeg')}
     style={styles.imageContainer}> 
this.setState({loadEnd:true})
source={require('./assets/granning_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>
        ....
    )
  }
}
render(){
如果(!this.state.loadEnd){
返回(
this.setState({loadEnd:true})
source={require('./assets/granning_mountain.jpeg')}
style={styles.imageContainer}>
)
}否则{
返回(
....
this.setState({loadEnd:true})
source={require('./assets/granning_mountain.jpeg')}
style={styles.imageContainer}>
....
)
}
}

谢谢你,@challenger!我实现了您的第二种方法,但正如您所说,它并不理想,因此我将尝试另一种方法。在这种情况下,预回迁不是有效的解决方案,因为它仅适用于远程图像。