Невозможно настроить отслеживание реакции для работы с Typescript, компонентами Function и React-хуками - PullRequest
0 голосов
/ 25 февраля 2020

Я использую реагирование. js с машинописью, реагирующими перехватчиками и компонентами функций. работая на Prem, я не могу использовать облачные решения для отслеживания, такие как Google Analytics или новые версии c. Кроме того, из-за проблем с лицензией я не могу купить решение для предварительного отслеживания сервера, поэтому я должен реализовать свое собственное. я наткнулся на реакцию отслеживания, который по умолчанию пишет в window.dataLayer [] (для Google Analytics), но должен позволить изменить его - поэтому я попробовал приведенный ниже код. но - это не работает для меня - handleTracking не вызывается - как я могу заставить его работать и передавать ему некоторые значимые данные (в настоящее время я просто прохожу тестирование по клику ...) Tnx заранее

import React, { useEffect, useContext, useState }  from 'react';
import { Button } from 'semantic-ui-react';
import { observer } from 'mobx-react-lite';
import track, { useTracking } from 'react-tracking';

const JobDashboard: React.FC = () => {
    const { trackEvent } = useTracking();
    const rootStore = useContext(RootStoreContext); 
    const { trackData} = rootStore.jobStore;

    const handleTracking = (trackingData) => {
        //trackData(trackingData);
        console.log(trackingData)
    }

    return (
    <Grid >
        <Grid.Column width={10}>
        <Button
                onClick={() => {
                    trackEvent({ event: 'click-test', dispatch: data=> {handleTracking(data)} });
                }}
                floated="right"
                content="Track"
                color="blue"
            />
        </Grid.Column>
    </Grid>
);
}

export default track({ page: 'JobDashboard' })(observer(JobDashboard));


1 Ответ

0 голосов
/ 28 февраля 2020
import React, { useEffect, useContext, useState }  from 'react';
import { Button } from 'semantic-ui-react';
import { observer } from 'mobx-react-lite';
import track, { useTracking } from 'react-tracking';

JobDashboard: React.FC = (track(
  // app-level tracking data
  { app: "JobDashboard" },
  {
    dispatch: data => {
      console.log(data);
      (window.dataLayer = window.dataLayer || []).push(data);
    }
  }
  return (
    <Grid >
        <Grid.Column width={10}>
        <Button
                onClick={() => {
                    trackEvent({ event: 'click-test'} 
                });
                }}
                floated="right"
                content="Track"
                color="blue"
            />
        </Grid.Column>
    </Grid>
);
)(export default observer(JobDashboard));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...