我正在考虑使用 React-Native 和 Expo 来构建一个 Web 应用程序。我遇到的唯一真正问题是允许使用浏览器后退按钮。我目前正在使用
@react-navigation/native
在屏幕之间导航。
不幸的是,当更改屏幕时,浏览器似乎不会将此注册为页面更改,因此浏览器后退按钮永远不会起作用。我当然可以使用应用程序中使用的标准后退按钮来向后导航,但我希望人们能够使用浏览器后退按钮,因为这更直观。我在 App.js 中使用以下内容:
import { NavigationContainer } from '@react-navigation/native';
import { createNativeStackNavigator } from '@react-navigation/native-stack';
const Stack = createNativeStackNavigator();
const App = () => {
...
return (
<NavigationContainer>
<Stack.Navigator>
<Stack.Screen
name="Home"
component={HomeScreen}
options={{ headerShown: false }}
/>
<Stack.Screen
name="Settings"
component={SettingsScreen}
options={{ headerShown: false }}
/>
</Stack.Navigator>
</NavigationContainer>
)
};
export default () => {
return (
<App />
);
};
那么,是否可以使用 Expo 和 React-Native 来允许为网络构建的应用程序使用浏览器后退按钮?
Expo Router 将是解决方案。它适用于本机和网络。
Expo Router 使用“链接”在应用程序的页面之间移动。默认情况下,链接将路由“推送”到导航堆栈上。它遵循与 navigation.navigate() 相同的规则。这意味着当用户返回时,前一个屏幕将可用。