ReactGa инициализируется при асинхронном получении идентификатора трека
Я использую React-GA от отслеживания моего приложения реагирования с помощью Google Analytics. Я получаю идентификатор отслеживания через вызов API и возвращается примерно через 4 секунды. Моя функция заключается в следующем:
const withTracker = (WrappedComponent, options = {}) => {
const trackPage = (page) => {
ReactGA.set({
page,
options
});
ReactGA.pageview(page);
};
class HOC extends Component {
componentDidMount() {
ReactGA.initialize(this.props.partnerTrackingCode);
const page = this.props.location.pathname;
trackPage(page);
}
componentWillReceiveProps(nextProps) {
console.log(nextProps);
const currentPage = this.props.location.pathname;
const nextPage = nextProps.location.pathname;
if (currentPage !== nextPage) {
trackPage(nextPage);
}
}
render() {
return <WrappedComponent {...this.props} />;
}
}
return HOC;
};
export default withTracker;
Проблема в том, что функция initiliaze должна вызываться первой и вызываться с неопределенным значением, потому что сначала trackid не определен (помните, что он вызывается асинхронно). Я использовал это редактирование:
const withTracker = (WrappedComponent, options = {}) => {
const trackPage = (page) => {
ReactGA.set({
page,
options
});
ReactGA.pageview(page);
};
class HOC extends Component {
componentWillReceiveProps(nextProps) {
if(nextProps.trackId) {
ReactGA.initiliaze(nextProps.trackId);
const currentPage = this.props.location.pathname;
const nextPage = nextProps.location.pathname;
trackPage(nextPage);
}
}
render() {
return <WrappedComponent {...this.props} />;
}
}
return HOC;
};
но я получаю ошибку, которая не может прочитать свойство parentNode из undefined У вас есть идеи, что делать?