5

我正在尝试与 react-navigation 一起跟踪 react-native-firebase 上的屏幕名称。

这是我的代码。

const tracker = firebase.analytics()

function getCurrentRouteName(navigationState) {
  if (!navigationState) {
    return null;
  }
  const route = navigationState.routes[navigationState.index];
	// dive into nested navigators
  if (route.routes) {
    return getCurrentRouteName(route);
  }
  return route.routeName;
}

export default class AppNavigation extends Component {

	render() {
		StatusBar.setBarStyle('light-content');

		return (
			<MainScreenNavigator 
				onNavigationStateChange={(prevState, currentState) => {
					const currentScreen = getCurrentRouteName(currentState);
					const prevScreen = getCurrentRouteName(prevState);
		
					if (prevScreen !== currentScreen) {
						// the line below uses the Google Analytics tracker
						// change the tracker here to use other Mobile analytics SDK.
						tracker.setCurrentScreen(currentScreen);
					}
				}}
			/>
		);
	}
}

当我控制台记录屏幕名称时,它们会根据需要显示。但是,我没有在 Firebase 控制台中看到结果。当我按名称过滤屏幕时,它只是说(未设置)。我在我的代码中做错了吗?我也从'react-native-firebase'导入了firebase。

4

1 回答 1

5

上面的代码是可靠的。事实证明,您必须等待半天左右才能填充数据。不确定我是否在文档中错过了这一点。如果您使用 react-navigation 和 firebase,则此代码有效!

于 2018-03-21T12:54:29.353 回答