javascript - 如何仅在 View 内部的图像完成渲染时渲染 View ,同时显示渲染指示器?

标签 javascript asynchronous react-native

假设我们有以下代码块:

  <View>
    <Image
      source={{uri: this.props.image}}
      renderIndicator={() => <SimpleLoader />}
    />
    <Text>{this.props.title}</Text>
  </View>

它当前在图像上显示渲染动画,但显示 View 和文本,然后最终渲染图像。

我愿意:

1) 让 View 本身具有 <SimpleLoader />在渲染任何子项时显示

2) 确定所有子级何时完成渲染(特别是图像),然后淡入 View 。

我正在阅读有关可能使用 componentDidMount 的回调的内容,但我不完全确定如何实现这一点。

最佳答案

一个简单的方法是使用 react-native-image-progress

手动执行此操作的一种方法是最初在状态中设置一个loaded: false属性,然后设置 onLoad将 Image 的属性传递给调用 setState({loaded: true}) 的函数。然后创建一个函数,例如 showImage(),它返回图像的 View 或加载指示器,具体取决于 state.loaded 分别为 true 或 false。在 render() 中,您可以调用 {this.showImage()}

要淡化图像,您可以使用 Animated将样式内图像的不透明度从 0 动画到 1。

关于javascript - 如何仅在 View 内部的图像完成渲染时渲染 View ,同时显示渲染指示器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48122995/

相关文章:

javascript - 数据在特定时间间隔内传递

react-native - 找不到项目:react-native-gesture-handler: None of the consumable configurations have attributes的匹配配置

javascript - 检测触摸向上或向下滚动

JavaScript 异步和延迟 : run a script asynchronously

javascript - 如何处理 fetch() 响应并仍然异步工作

angular - 如何使用带有 @defer 的异步管道在 Angular 17 中的模板中加载和声明变量

react-native - Realm .js : Storing unstructured object as property

ios - 通过向下滑动来 react 原生模式关闭(react-native-swipe-gestures)

javascript - 用此关键字和controllerAs替换$scope时,ng-repeat出错

javascript - 如果属性未定义或不存在