Reactjs 如何导航到不同的屏幕而不在react native中显示屏幕

Reactjs 如何导航到不同的屏幕而不在react native中显示屏幕,reactjs,react-native,react-native-android,react-native-navigation,Reactjs,React Native,React Native Android,React Native Navigation,我想在不显示视图的情况下从登录屏幕导航到主屏幕。我试图做的是,如果从启动屏幕,如果它从异步存储获取用户名,然后移动到登录页面…其中登录页面,如果用户名与登录屏幕中的POST方法匹配,则直接登录,如果不匹配,则显示登录屏幕视图 这是我的密码 import React,{useState}来自“React”; 导入{ 看法 文本, 可触摸不透明度, 文本输入, 平台, 样式表, 状态栏, 警觉的 }从“反应本机”; 从“react native Animatable”导入*作为可设置动画; 从“反

我想在不显示视图的情况下从登录屏幕导航到主屏幕。我试图做的是,如果从启动屏幕,如果它从异步存储获取用户名,然后移动到登录页面…其中登录页面,如果用户名与登录屏幕中的POST方法匹配,则直接登录,如果不匹配,则显示登录屏幕视图 这是我的密码

import React,{useState}来自“React”;
导入{
看法
文本,
可触摸不透明度,
文本输入,
平台,
样式表,
状态栏,
警觉的
}从“反应本机”;
从“react native Animatable”导入*作为可设置动画;
从“反应本机线性渐变”导入LinearGradient;
从“反应本机矢量图标/FontAwesome”导入FontAwesome;
从“反应本机向量图标/羽毛”导入羽毛;
从“react native paper”导入{useTheme};
常量asdf=({navigation})=>{
const STORAGE_KEY='username';
const[userName,setUserName]=useState(“”);
常量[errortext,setErrortext]=使用状态(“”);
常量retrieveData=async()=>{
试一试{
const value=await AsyncStorage.getItem(存储密钥);
如果(值!==null){
var-str=价值;
//str=str.replace(/^“|“$/g,”);
str=str.replace(/“/g'”);
获取数据(str);
}
}捕获(错误){
//检索数据时出错
}
};
检索数据();
常量handleSubmitPress=()=>{
如果(!用户名){
setUserName(“”)
//onChangeText();
返回
}否则{
获取数据(用户名);
}
setUserName(“”)
//onChangeText();
}
const fetchData=(用户名)=>{
如果(用户名){
让dataToSend={search:userName}
设formBody=[];
for(让我们在dataToSend中搜索){
让encodeKey=encodeURIComponent(搜索);
让encodeValue=encodeURIComponent(dataToSend[search]);
formBody.push(encodeKey+'='+encodeValue);
}   
formBody=formBody.join('&');
取('https://qwert/work/rest/apiofficeapp.php', {
方法:“POST”,//请求类型
body:formBody,//post body
标题:{
//标题定义
“内容类型”:
“application/x-www-form-urlencoded;charset=UTF-8”,
},
}) 
.then((response)=>response.json())
.然后((responseJson)=>{
if(responseJson[0]!=''){
//警报(JSON.stringify(responseJson[0]);
const saveData=async()=>{
试一试{
等待AsyncStorage.setItem(存储密钥,responseJson[0][0]['username'])
//等待AsyncStorage.setItem(存储密钥,JSON.stringify(responseJson[0][0]['username']))
//警报('数据已成功保存登录页')
}捕获(e){
//警报('未能将数据保存到存储器')
}
}
saveData();
导航。导航(“HomeApp”);
setErrortext(“”);
}否则{
setErrortext(用户名+“未找到用户”)
}
})
.catch((错误)=>{
控制台错误(error);
}); 
} }
//const onChangeText=userName=>setUserName(userName)
const onChangeText=userName=>setUserName(userName)
const{colors}=useTheme();
//const onChangeText=(val)=>{
//如果(值长度!==0){
//setUserName({
//…用户名,
//用户名:val,
//         });
//}其他{
//setUserName({
//…用户名,
//用户名:val,
//         });
//     }
// }
返回(
欢迎
用户名
onChangeText(用户名)}
onSubmitEditing={handleSubmitPress}
/>
{/*{data.check\u textInputChange?
:null}
*/}
{errortext!=''(
{errortext}
):null}
{handleSubmitPress()}}
>
登录
navigation.navigate('Register')}
style={[style.sign{
边框颜色:“#A80900”,
边框宽度:1,
玛金托普:15
}]}
>
登记
);
};
导出默认asdf;
const styles=StyleSheet.create({
容器:{
弹性:1,
背景颜色:“#A80900”
},
标题:{
弹性:1,
justifyContent:“柔性端”,
水平方向:20,
垫底:50
},
页脚:{
弹性:3,
背景颜色:“#fff”,
borderTopLeftRadius:30,
BorderTopRight半径:30,
帕丁霍里森
import SplashScreen from 'react-native-splash-screen'

export default class MainPage extends Component {

    componentDidMount() {
        SplashScreen.hide();
    }
}