【发布时间】:2021-08-22 11:30:25
【问题描述】:
我得到错误:
Possible Unhandled Promise Rejection (id: 0): TypeError: undefined is not an object (evaluating 'camera.takePicture Async')
在按照 Expo Camera 文档以 react native 运行我的应用程序时。 我的代码是这样的:
export default function App() {
const [hasPermission, setHasPermission] = useState(null);
useEffect(() => {
(async () => {
const { status } = await Camera.requestPermissionsAsync();
const { status2 } = await MediaLibrary.requestPermissionsAsync();
setHasPermission(status === 'granted');
})();
}, []);
if (hasPermission === null) {
return <View />;
}
if (hasPermission === false) {
return <Text>No access to camera or photos</Text>;
}
}
function Cam() {
const takePicture = async () => {
const photo = await camera.takePictureAsync()
MediaLibrary.saveToLibraryAsync(photo.uri)
}
const [type, setType] = useState(Camera.Constants.Type.back);
return (
<View style={styles.container}>
<Camera style={styles.camera} type={type}>
<View style={styles.buttonContainer}>
<TouchableOpacity
onPress={takePicture}
style={{
width: 70,
height: 70,
bottom: 0,
borderRadius: 50,
backgroundColor: '#fff',
alignItems: 'center',
alignSelf: 'center',
}}
>
</TouchableOpacity>
<TouchableOpacity
style={styles.button}
onPress={() => {
setType(
type === Camera.Constants.Type.back
? Camera.Constants.Type.front
: Camera.Constants.Type.back
);
}}>
<Text style={{transform: [{ rotate: '90deg' }], color: 'white', textAlign: 'left'}}> Flip </Text>
</TouchableOpacity>
</View>
</Camera>
</View>
);
}
在我尝试将拍摄的照片保存到相机之前,一切正常。我之前保存过类似的图片,所以我不知道有什么不同/错误/会导致这样的错误。
我的完整程序可以在Snack here找到
【问题讨论】:
标签: javascript react-native expo