react-navigation - 使用 React Navigation 了解 Stack Navigator 之外的组件中的当前路由是什么?

标签 react-navigation

我有一个组件在 NavigationContainer 组件内但在 Stack Navigator 之外。我能知道组件中的当前路由是什么吗?我不能使用 useRoute Hook ,因为它出错了:

Couldn't find a route object. Is your component inside a screen in a navigator?

最佳答案

您需要遵循 react-navigation 中的指南 docs .它解释了如何获得对 NavigationContainer ref 的访问权限,然后您可以使用它来访问应用程序的当前导航状态,甚至在组件之外也是如此。

这是一个简短的演示,以防将来此链接中断。

// App.js

import { NavigationContainer } from '@react-navigation/native';
import { navigationRef } from './Navigation';

export default function App() {
  return (
    <NavigationContainer ref={navigationRef}>{/* ... */}</NavigationContainer>
  );
}
// Navigation.js

import React from 'react';

export const navigationRef = React.createRef();

// You can export navigation functions to use throughout your app, without accessing the `navigation` prop.
export function navigate(name, params) {
  navigationRef.current?.navigate(name, params);
}

// This is the function you want, it will return the complete navigation state
export function getRootState() {
  return navigationRef.current?.getRootState();
}

关于react-navigation - 使用 React Navigation 了解 Stack Navigator 之外的组件中的当前路由是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61480003/

相关文章:

react-native - react 导航 : Dynamically setting `mode` setting (/header renders double and back button disappears)

javascript - 是否可以使用 React Navigation 在 React Native 中的自定义和默认转换之间切换?

android - react native react 导航安全区域问题

react-native - 如何使用底部选项卡导航处理 SafeArea 的背景颜色?

javascript - react 导航 3 : Open modal with createBottomTabNavigator and createStackNavigator

reactjs - react 导航变量标签宽度

react-native - 通过 React Navigation 从任何组件访问 navigation prop

javascript - 如何在 react 导航中定位后退箭头按钮

react-native - 在 iOS 上从 React Navigation 5 迁移到 6 时出现 "Undefined symbols for architecture x86_64 error"

javascript - react native 抽屉导航器未打开