我目前是第一次使用 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)