首页 > 解决方案 > TypeError: (0 , _analytics.analytics) 不是函数)谷歌分析反应原生

问题描述

在 react native app 中,我使用的是 firebase google analytics。

问题出在跟踪屏幕上,我点击了这个链接,但是我遇到 了这个错误。

TypeError: (0 , _analytics.analytics) is not a function).

截图

我的应用容器文件(drawer.js):

import { createDrawerNavigator } from 'react-navigation-drawer';
import { createAppContainer } from 'react-navigation';
import Feed  from '../components/Home';
import {FeedStack}  from './stack';
import React, { Component } from 'react';
import  {analytics }from '@react-native-firebase/analytics';

const MyDrawerNavigator = createDrawerNavigator(
 {
   Feed: FeedStack
 },
);

function getActiveRouteName(navigationState) {
     if (!navigationState) {
       return null;
     }
     const route = navigationState.routes[navigationState.index];

     if (route.routes) {
       return getActiveRouteName(route);
     }
     return route.routeName;
 }

const AppContainer =createAppContainer(MyDrawerNavigator);
export default () => {
    return <AppContainer
        onNavigationStateChange={(prevState, currentState, action) => {
            const currentRouteName = getActiveRouteName(currentState);
            const previousRouteName = getActiveRouteName(prevState);

            if (previousRouteName !== currentRouteName) {
      analytics().setCurrentScreen(currentRouteName, currentRouteName);
            }
          }}
    />
}

我的 app.js :


import Feed from './src/components/Home';
import HomePage from './src/components/homeEpaper';
import Navigator from './src/navigator/drawer';

import React, { Component } from 'react';


export default function App() {

    return (

      <Navigator />
    )

}

我还尝试从“@react-native-firebase/analytics”导入分析;我得到了这个错误。截屏

标签: react-native

解决方案


如果您使用的是setCurrentScreen方法,那么您需要使用以下内容

包.jsom

"@react-native-firebase/analytics": "^10.4.0",
"@react-native-firebase/app": "^10.4.0",

不正确

import analytics from '@react-native-firebase/analytics';
.
.
.
analytics().setCurrentScreen('SignUpScreen');`

正确的

import analytics from '@react-native-firebase/analytics';
.
.
.
// Google Firebase Analytics
analytics().logScreenView({
    screen_name: 'SignUpScreen',
    screen_class: 'SignUpScreen'
});

推荐阅读