React native 拍照时的活动指示灯与世博会摄像头同步

React native 拍照时的活动指示灯与世博会摄像头同步,react-native,camera,expo,activity-indicator,React Native,Camera,Expo,Activity Indicator,我正在开发一个React原生应用程序,我想在世博会摄像头处理图像时显示ActivityIndicator组件 <TouchableOpacity style={{alignSelf: 'center'}} onPress={takePicture}> <FontAwesome name="camera" style={{ color: "#FEA428", fontSize: 50, marginBottom: 20}}/&g

我正在开发一个React原生应用程序,我想在世博会摄像头处理图像时显示ActivityIndicator组件

<TouchableOpacity style={{alignSelf: 'center'}} onPress={takePicture}>    
  <FontAwesome name="camera" style={{ color: "#FEA428", fontSize: 50, marginBottom: 20}}/>
</TouchableOpacity> 
setLoading更改“isLoading”属性,该属性表示活动指示器是否可见。但是,在第一次
setLoading(prevState=>!prevState)
之后,将永远不会执行以下代码。我是不是遗漏了什么

编辑:我正在发布一个带有代码的Expo零食,用于测试。在网络上,这个问题是看不见的,但举例来说,如果你在安卓系统上运行它,它就会出现


Tks.

您应该在wait方法调用之后移动第二个setLoading,如下所示:

const takePicture = async () => {
  setLoading(prevState => !prevState)
  if(cameraRef){
    let photo = await cameraRef.takePictureAsync({quality: 0.5, skipProcessing: true, fixOrientation: false});

    setLoading(prevState => !prevState);

    setPhotoAbove(photo);
  }
 
}

这是一个很好的观点,但这不是问题所在。不管怎样。我要寄一份世博会小吃。
const takePicture = async () => {
  setLoading(prevState => !prevState)
  if(cameraRef){
    let photo = await cameraRef.takePictureAsync({quality: 0.5, skipProcessing: true, fixOrientation: false});

    setLoading(prevState => !prevState);

    setPhotoAbove(photo);
  }
 
}