获取位置后如何自动导航到下一个屏幕
Posted
技术标签:
【中文标题】获取位置后如何自动导航到下一个屏幕【英文标题】:How to Navigate Automatically to next screen after getting location 【发布时间】:2021-01-14 11:24:15 【问题描述】:我是原生反应的新手。我创建了屏幕来访问位置。我从世博会网站复制此代码。现在它可以工作了,但只有屏幕位置访问屏幕显示我无法移动到我的应用程序意味着到下一个欢迎屏幕。
这是我的代码。
import React, useState, useEffect from 'react';
import Platform, Text, View, StyleSheet from 'react-native';
import Constants from 'expo-constants';
import * as Location from 'expo-location';
export default function App()
const [location, setLocation] = useState(null);
const [errorMsg, setErrorMsg] = useState(null);
useEffect(() =>
(async () =>
if (Platform.OS === 'android' && !Constants.isDevice)
setErrorMsg(
'Oops, this will not work on Snack in an Android emulator. Try it on your device!'
);
return;
let status = await Location.requestPermissionsAsync();
if (status !== 'granted')
setErrorMsg('Permission to access location was denied');
return;
let location = await Location.getCurrentPositionAsync();
setLocation(location);
)();
, []);
let text = 'Waiting..';
if (errorMsg)
text = errorMsg;
else if (location)
text = JSON.stringify(location);
return (
<View style=styles.container>
<Text style=styles.paragraph>text</Text>
</View>
);
const styles = StyleSheet.create(
container:
flex: 1,
alignItems: 'center',
justifyContent: 'center',
padding: 20,
,
paragraph:
fontSize: 18,
textAlign: 'center',
,
);
【问题讨论】:
您好,我无法理解您的问题。您是否获得了位置,但您无法进入欢迎屏幕,您的欢迎屏幕在哪里?请给我更多细节,更多代码和更多上下文。等待您的反馈意见。谢谢 :)。 是的,实际上我创建了一个应用程序,然后现在我添加了位置屏幕,每当我运行该应用程序时,位置屏幕就会显示。我想在后台保存用户位置,我不想显示位置屏幕,我希望该逻辑在后台运行 现在我理解得更好了。因此,如果您想在 Expo 中处理后台任务,请使用 BackgroundFecth 库或 TaskManager 库。请记住,在您必须请求位置权限之前,您可以开始在后台获取用户位置。等待您的反馈,谢谢 :)。 实际上我从来没有在 react-native 中处理过后台任务,但是当我看到你的代码时,我认为你应该放 ``` let location = await Location.getCurrentPositionAsync(); setLocation(location);```作为后台任务,你明白了吗?他将不断获取用户位置。 如果我的评论真的对你有帮助,请点赞我的评论 :)。很高兴能帮到你。 【参考方案1】:您需要使用 React Navigation 在屏幕之间导航。
这是link to the docs。按照文档中的说明,您应该能够非常快速地为您的应用添加导航。
【讨论】:
以上是关于获取位置后如何自动导航到下一个屏幕的主要内容,如果未能解决你的问题,请参考以下文章