有没有办法查看 Screen/Route 是否存在于 React Navigation v5 的导航堆栈中?

Is there a way to see if a Screen/Route exists in a navigation stack for React Navigation v5?

根据特定堆栈中是否存在屏幕,我需要能够在我的代码中执行不同的操作。我已尽力而为,但我还没有找到任何关于此事的信息。有没有简单的方法可以做到这一点?

如果你的意思是,你想获取当前导航器内的所有路线,那么我认为这可以解决你的问题。

const navigation = useNavigation();

const routes = navigation.dangerouslyGetState().routeNames;

在第 6 版中:

const navigation = useNavigation();
const routes = navigation.getState().routeNames;

在我的 v5.7 中是:

const routes = navigation.getRootState().routeNames;

其中 returns 所有可用路线的数组,所以我只能通过这样做来检查它是否存在:

if (routes.includes('YourRouteNameHere')) {
    console.log('Route exist!');
}