我想在React Navigator中获取当前Routename的名称。我遇到了三个解决方案:
1. const { routeName } = navigation.state.routes[navigation.state.index];
2. this.props.navigation.state.RouteName
3. const route = navigationState.routes[navigationState.index];
第一个似乎效果很好。对于第二个,我不确定如何使用它。第三个选项(如官方文档中给出(,生成错误 ReferenceError: navigationState is undefined
。
请帮助我,这是在导航时找到活动屏幕名称的正确方法。
function getActiveRouteName(navigationState) {
if (!navigationState) {
return null
}
const route = navigationState.routes[navigationState.index]
if (route.routes) {
return getActiveRouteName(route)
}
return route.routeName
}
// Example Usage
const currentScreen = getActiveRouteName(this.props.router);
if (currentScreen === 'Login') {
// do something
}