首页 > 解决方案 > React Google Analytics - 如何检查是否已初始化?

问题描述

我正在尝试实现 react-ga 但仅在生产服务器中(我有本地/开发和生产服务器)。

所以,我想在后台创建一个文本字段,该字段的值保存在数据库中。

然后在前端,只有当我在数据库中有值时才初始化 react-ga。

为了实现这一点,我正在尝试componentDidUpdateApp.jsx.

我通过以下方式在后台检索我的所有数据集:

componentDidMount() {
    // I get my data in this.props.data_admin
    this.props.list_admin();
}

然后在componentDidUpdate(prevProps, prevState)我检查 this.props.data_admin 是否设置并且不为空,当我得到值时,我想初始化 react-ga :

componentDidUpdate(prevProps, prevState, snapshot) {
    if (this.props.data_admin) {
        // this.props.data_admin.trackingNumber = UA-XXXXXXXXX
        ReactGA.initialize(this.props.data_admin.trackingNumber);
    }
}

但这会做很多次(每次更新 App.jsx 时)。所以我应该在初始化之前检查它是否已经完成。如何检查 react-ga 是否已经初始化?

谢谢你的帮助

标签: reactjsreact-ga

解决方案


我认为您不应该这样做,componentDidUpdate而是在componentDidMount您检索数据之后。

您的数据检索过程是对后端/数据库的异步调用,它应该返回一个用检索到的数据解析的 Promise。然后你可以初始化 react-ga。

componentDidMount() {
    // I am assuming this.props.list_admin() returns your data
    this.props.list_admin().then((data_admin) => {
      if (data_admin) {
        // data_admin.trackingNumber = UA-XXXXXXXXX
        ReactGA.initialize(data_admin.trackingNumber);
      }
    });
}

推荐阅读