【问题标题】:React native navigation (web, android and ios) Goes back to first screenReact 原生导航(web、android 和 ios)返回第一个屏幕
【发布时间】:2020-08-10 19:08:30
【问题描述】:

嘿,我正在使用 react native 为 android、ios 和 web 构建应用程序,我使用 https://reactnative.dev/docs/navigation 进行导航,它在 android 和 IO 上运行良好,但在 web 上我偶然发现了 2 个问题。 首先是下一个屏幕总是在同一页面中打开,我希望它转到新页面。 其次,假设我在堆栈中的第三个屏幕上,如果我在浏览器中点击刷新它会进入第一个屏幕(在我的情况下,第一个屏幕是登录屏幕)。 我能做些什么来解决这个问题?我应该为 web、android 和 ios 使用任何其他导航框架,还是你有完全不同的建议?

import 'react-native-gesture-handler';
import { StatusBar } from 'expo-status-bar';
import React from 'react';
import {
  StyleSheet,
  Text,
  View,
} from 'react-native';
import { NavigationContainer, StackActions } from "@react-navigation/native";
import { createStackNavigator } from "@react-navigation/stack";
import LoginScreen from './screen/LoginScreen';
import HomeScreen from './screen/HomeScreen';
import AboutUsScreen from './screen/AboutUsScreen';
import ProgramsScreen from './screen/ProgramsScreen';
import ResourcesScreen from './screen/ResourcesScreen';
import NewsScreen from './screen/NewsScreen';

const Stack = createStackNavigator();

export default function App() {
  return (
    <NavigationContainer>
      <Stack.Navigator
        screenOptions={{ headerShown: true }}
      >
        <Stack.Screen name="LoginScreen" component={LoginScreen} />
        <Stack.Screen name="HomeScreen" component={HomeScreen}/>
        <Stack.Screen name="AboutUsScreen" component={AboutUsScreen}/>
        <Stack.Screen name="ProgramsScreen" component={ProgramsScreen}/>
        <Stack.Screen name="ResourcesScreen" component={ResourcesScreen}/>
        <Stack.Screen name="NewsScreen" component={NewsScreen}/>
      </Stack.Navigator>
    </NavigationContainer>
  );
}

const styles = StyleSheet.create({
  container: {
    flex: 1,
    backgroundColor: '#fff',
    alignItems: 'center',
    justifyContent: 'center',
  },
});

【问题讨论】:

  • Hey Hamza 感谢您提出问题,能否将代码示例附加到您的问题中,以帮助其他人了解您正在查看的内容
  • 嘿,谢谢你的关注,我已经用我用来切换屏幕的代码添加了这个问题。

标签: react-native web navigation react-native-navigation react-native-web


【解决方案1】:

对于任何寻找答案的人,我解决了它,我创建了 2 个 App.js 文件,用于 web 的 App.js 和用于 android 的 App.android.js,在 App.android.js 中,我使用反应导航进行导航和我使用路由的网络,使用路由消除了刷新页面时应用程序会跳转到登录屏幕的问题。

【讨论】:

    猜你喜欢
    • 2021-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-27
    相关资源
    最近更新 更多