当我在React <a />
或<Link />
元素上的GTM中添加触发器时,会导致单击时重新加载整页,而不是仅重新呈现应用程序的一部分。
当我删除谷歌跟踪时,一切顺利。有没有办法,如何配置GTM不影响应用程序的行为?
答案 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标签。