首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Nuxt、Google Tag Manager和Vuex

使用Nuxt、Google Tag Manager和Vuex
EN

Stack Overflow用户
提问于 2020-01-07 03:58:32
回答 1查看 548关注 0票数 0

我正在尝试将事件数据发送到Nuxt项目中的Google Tag Manger。这个包,https://www.npmjs.com/package/@nuxtjs/google-tag-manager,提供了我需要的东西。他们给出的例子假设我想从一个组件中调用函数:

代码语言:javascript
复制
this.$gtm.pushEvent({ event: 'myEvent', ...someAttributes })

但是,我实际上需要从一个Vuex模块调用该函数,在该模块中this是未定义的。我想我可以这样做:

代码语言:javascript
复制
import GTM from '@nuxtjs/google-tag-manager';

export default {
  actions: {
    myAction(_, data) {
      GTM.pushEvent(data);
    },
  ...

但这会导致:

代码语言:javascript
复制
TypeError: _nuxtjs_google_tag_manager__WEBPACK_IMPORTED_MODULE_3___default.a.pushEvent is not a function

我也试过了:

代码语言:javascript
复制
import Vue from 'vue';
const vm = new Vue();

export default {
  actions: {
    myAction(_, data) {
      vm.$gtm.pushEvent(data);
    },
  ...

但这会导致:

代码语言:javascript
复制
TypeError: Cannot read property 'pushEvent' of undefined

有趣的是,当我登录vm时,我将$gtm: undefined视为一个属性。所以很明显插件在那里,但它没有被激活?我知道我遗漏了一些基本的东西。

EN

回答 1

Stack Overflow用户

发布于 2020-04-29 03:44:01

this.$gtm.push({ event: 'myEvent', ...someAttributes })

这是推送而不是pushEvent

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59618204

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档