【发布时间】:2019-12-26 05:21:31
【问题描述】:
这是我在 React Native Expo App 中访问相机的代码。但是这段代码不起作用。它只显示空白屏幕,没有别的。如果需要任何更改或任何替代方法来实现这一点,请建议我。
import React, { useState, useEffect } from 'react';
import { Text, View, TouchableOpacity } from 'react-native';
import { Camera } from 'expo-camera';
export default function App() {
const [hasPermission, setHasPermission] = useState(null);
const [type, setType] = useState(Camera.Constants.Type.back);
useEffect(() => {
(async () => {
const { status } = await Camera.requestPermissionsAsync();
setHasPermission(status === 'granted');
})();
}, []);
if (hasPermission === null) {
return <View />;
}
if (hasPermission === false) {
return <Text>No access to camera</Text>;
}
return (
<View style={{ flex: 1 }}>
<Camera style={{ flex: 1 }} type={type}>
<View
style={{
flex: 1,
backgroundColor: 'transparent',
flexDirection: 'row',
}}>
<TouchableOpacity
style={{
flex: 0.1,
alignSelf: 'flex-end',
alignItems: 'center',
}}
onPress={() => {
setType(
type === Camera.Constants.Type.back
? Camera.Constants.Type.front
: Camera.Constants.Type.back
);
}}>
<Text style={{ fontSize: 18, marginBottom: 50, color: 'red' }}> Flip </Text>
</TouchableOpacity>
</View>
</Camera>
</View>
);
}
【问题讨论】:
-
这是发生在设备上还是模拟器上?
-
您正在使用来自docs.expo.io/versions/latest/sdk/camera 的代码,该代码有效,相机在模拟器上不起作用。
-
我在设备上使用代码而不是在模拟器上
-
它在我的设备上运行试试这个零食snack.expo.io/…
-
先生,实际上我在控制台中收到此错误->“[未处理的承诺拒绝:TypeError:_expoCamera.Camera.requestPermissionsAsync 不是函数。(在'_expoCamera.Camera.requestPermissionsAsync()'中, '_expoCamera.Camera.requestPermissionsAsync' 未定义)]"
标签: react-native expo