Google跟踪代码管理器会导致SPA中的整页重新加载 - React

时间:2016-04-21 12:21:35

标签: reactjs single-page-application google-tag-manager

当我在React <a /><Link />元素上的GTM中添加触发器时,会导致单击时重新加载整页,而不是仅重新呈现应用程序的一部分。

当我删除谷歌跟踪时,一切顺利。有没有办法,如何配置GTM不影响应用程序的行为?

2 个答案:

答案 0 :(得分:3)

如果谷歌跟踪代码管理器链接点击跟踪发生奇怪的事情,您应该做的第一件事是转到您的点击触发器设置,看看是否启用了“等待标签”和“检查验证”复选框(因为它们是默认)并取消选中它们。

它们在SPA中不是必需的,并且(如证据所示)可能有害; “等待标签”会增加延迟,以便其他标签在链接将用户引导离开页面之前有时间触发(在任何情况下都不会在SPA中发生),“检查验证”测试链接目标是否为有效的URI(在SPA中,它可能不是由GTMs标准 - 例如以哈希开头的链接无效等)。

答案 1 :(得分:1)

您可以创建单独的功能并使用上下文路由器来更改路由ex:

myFunction(url) {
 this.context.router.push({ 
      pathname: url
    });
}
<Link onClick={this.myFunction.bind(this,url)} ></Link> 

将此功能附加到onClick of Link标签。