定义所使用的导航栈
const RootStack = StackNavigator(
// ... 略去具体内容
);
工具方法:获取当前屏幕名称
function getCurrentRouteName(navigationState) {
if (!navigationState) {
return null;
}
const route = navigationState.routes[navigationState.index];
if (route.routes) {
return getCurrentRouteName(route);
}
return route.routeName;
}
在使用的导航栈上监听屏幕变化
export default class App extends Component {
//... 其他代码
render() {
return (<RootStack onNavigationStateChange={(prevState, currentState) => {
const currentScreen = getCurrentRouteName(currentState);
const prevScreen = getCurrentRouteName(prevState);
if (prevScreen !== currentScreen) {
console.log("当前屏幕切换到了:" + currentScreen);
}
}}
/>);
}
//... 其他代码
}
参考资料
Screen Tracking