有没有办法查看 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!');
}
根据特定堆栈中是否存在屏幕,我需要能够在我的代码中执行不同的操作。我已尽力而为,但我还没有找到任何关于此事的信息。有没有简单的方法可以做到这一点?
如果你的意思是,你想获取当前导航器内的所有路线,那么我认为这可以解决你的问题。
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!');
}