小编Tho*_*ötz的帖子

使用 expo-router 时防止默认后退导航

我目前是第一次使用 expo 和 expo-router,并对默认后退导航有疑问。我的意思是,例如,在 Google Pixel 上从屏幕左边缘滑动到屏幕中间。这将触发我的堆栈导航器上的后退导航。

在我之前使用 React Navtive CLI 和 React Navigation 的项目中,我可以通过向导航道具的“beforeRemove”事件添加事件侦听器来防止这种情况发生。

如何使用 expo-router 实现这一目标?我按照他们的指示构建了一个CustomStack 导航器,并希望我可以通过这种方式访问​​“导航”。我的代码基本上是这样的:

自定义堆栈.tsx

import { createStackNavigator, StackNavigationOptions } from "@react-navigation/stack";
import { withLayoutContext } from "expo-router";

const { Navigator } = createStackNavigator();

export const CustomStack = withLayoutContext<StackNavigationOptions, typeof Navigator>(Navigator);
Run Code Online (Sandbox Code Playgroud)

_layout.tsx

import { Stack } from "expo-router";
import { CustomStack } from "./CustomStack";

export default function RootLayout() {
return (
    <CustomStack>
        <Stack.Screen name="Home" />
        <Stack.Screen name="About" />
// ...
    </CustomStack>
  );
} …
Run Code Online (Sandbox Code Playgroud)

react-native react-navigation expo stack-navigator

6
推荐指数
1
解决办法
5893
查看次数