在我的代碼中,您可以看到它首先詢問用戶的位置權限。授予后,它會記錄并顯示用戶的緯度和經度。
當用戶拒絕此權限時,我試圖彈出警報。我認為這就像我在下面的代碼中實作的一樣簡單,但顯然有問題。當 status != 被授予時,我在 if 陳述句中呼叫了我的 permissionAlert 函式。
我已經包含了下面的代碼以及一個小吃示例。
非常感謝您的任何見解。
export default function App() {
const [latitude, setLatitude] = useState(null);
const [longitude, setLongitude] = useState(null);
const permissionAlert = () => {
Alert.alert(
'You did not allow location permissions',
[
{text: 'Yes', onPress: () => console.log('Yes button clicked')},
{text: 'No', onPress: () => console.log('No button clicked'), style: 'cancel'},
],
{
cancelable: true
}
);
}
useEffect(() => {
(async () => {
let { status } = await Location.requestForegroundPermissionsAsync();
if (status !== 'granted') {
permissionAlert();
return;
}
let location = await Location.getCurrentPositionAsync({});
setLatitude(location.coords.latitude)
setLongitude(location.coords.longitude);
})();
}, []);
console.warn("latitude: ", latitude);
console.warn("longitude: ", longitude);
return (
<View style={styles.container}>
<Text style={styles.paragraph}>{latitude}</Text>
<Text style={styles.paragraph}>{longitude}</Text>
</View>
);
}
uj5u.com熱心網友回復:
看起來您沒有正確使用警報 API。
警報的第二個引數是description,但您試圖傳入一個動作陣列,而應該是第三個引數。
所以應該是這樣的
Alert.alert(
'Permission denined',
'You did not allow location permissions',
[
{text: 'Yes', onPress: () => console.log('Yes button clicked')},
{text: 'No', onPress: () => console.log('No button clicked'), style: 'cancel'},
],
{
cancelable: true
}
);
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/422626.html
標籤:
上一篇:導航到函式并將狀態傳遞給函式
