React 本机导航(网络,android 和 ios)返回到第一个屏幕
React native navigation (web, android and ios) Goes back to first screen
嘿,我正在使用 React Native 为 android、ios 和网络构建应用程序,我正在使用 https://reactnative.dev/docs/navigation 进行导航,它在 [=16] 上运行良好=] 和 IOs 但在网络上我偶然发现了 2 个问题。
首先是下一个屏幕总是在同一页面打开,我希望它转到新页面。
其次,假设我在堆栈中的第三个屏幕上,如果我在浏览器中点击刷新,它会转到第一个屏幕(在我的例子中,第一个屏幕是登录屏幕)。
我该怎么做才能解决这个问题?有没有其他我应该用于网络的导航框架,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',
},
});
对于任何寻找答案的人,我解决了它,我创建了 2 个 App.js 文件,App.js 用于网络,App.android.js 用于 android,在 App.android.js 我使用 React Navigation 进行导航,对于 Web 我使用路由,使用路由消除了刷新页面时应用程序会跳转到登录屏幕的问题。
嘿,我正在使用 React Native 为 android、ios 和网络构建应用程序,我正在使用 https://reactnative.dev/docs/navigation 进行导航,它在 [=16] 上运行良好=] 和 IOs 但在网络上我偶然发现了 2 个问题。 首先是下一个屏幕总是在同一页面打开,我希望它转到新页面。 其次,假设我在堆栈中的第三个屏幕上,如果我在浏览器中点击刷新,它会转到第一个屏幕(在我的例子中,第一个屏幕是登录屏幕)。 我该怎么做才能解决这个问题?有没有其他我应该用于网络的导航框架,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',
},
});
对于任何寻找答案的人,我解决了它,我创建了 2 个 App.js 文件,App.js 用于网络,App.android.js 用于 android,在 App.android.js 我使用 React Navigation 进行导航,对于 Web 我使用路由,使用路由消除了刷新页面时应用程序会跳转到登录屏幕的问题。