Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用expo将图片保存到mediaLibrary的问题_Javascript_React Native_Promise_Expo - Fatal编程技术网

Javascript 使用expo将图片保存到mediaLibrary的问题

Javascript 使用expo将图片保存到mediaLibrary的问题,javascript,react-native,promise,expo,Javascript,React Native,Promise,Expo,我是一个全新的反应者,而且反应也很自然,但我正在努力学习 我在尝试将图片保存到手机图库时遇到问题 所以,我要进口 import { MediaLibrary } from 'expo-media-library' 我也在使用美国 const [hasPermission, setHasPermission] = useState(null); const [type, setType] = useState(Camera.Constants.Type.back); const [cameraR

我是一个全新的反应者,而且反应也很自然,但我正在努力学习

我在尝试将图片保存到手机图库时遇到问题

所以,我要进口

import { MediaLibrary } from 'expo-media-library'
我也在使用美国

const [hasPermission, setHasPermission] = useState(null);
const [type, setType] = useState(Camera.Constants.Type.back);
const [cameraRef, setCameraRef] = useState(null)
在这里,除了保存照片外,一切正常

<TouchableOpacity style={{alignSelf: 'center'}} onPress={async() => {
            if(cameraRef){
              let photo = await cameraRef.takePictureAsync();
              console.log('photo', photo);
              MediaLibrary.saveToLibraryAsync(photo.uri)

            }
          }}>
但我找不到一种方法来保存它到相机辊,我总是得到这个错误

[Unhandled promise rejection: TypeError: undefined is not an object (evaluating '_expoMediaLibrary.MediaLibrary.saveToLibraryAsync')]
任何帮助都将不胜感激


R.

我认为您在promise中遇到了未定义的对象错误,因为您不关心
MediaLibrary.saveToLibraryAsync()
wait

您可能也应该像对待takePictureAsync()一样,将
MediaLibrary.saveToLibraryAsync()与
Wait
放在一起,因为它是一个异步函数

let photo = await cameraRef.takePictureAsync();
console.log('photo', photo);
await MediaLibrary.saveToLibraryAsync(photo.uri);

只是一个假设,希望它能帮助您解决这个问题。

我认为您得到了未定义的对象错误,因为您不关心
MediaLibrary.saveToLibraryAsync()
wait

您可能也应该像对待takePictureAsync()一样,将
MediaLibrary.saveToLibraryAsync()与
Wait
放在一起,因为它是一个异步函数

let photo = await cameraRef.takePictureAsync();
console.log('photo', photo);
await MediaLibrary.saveToLibraryAsync(photo.uri);
只是一个假设,希望它能帮助你解决这个问题