使用Nuxt,Google跟踪代码管理器和Vuex

问题描述 投票:0回答:1

我正在尝试将事件数据发送到Nuxt项目中的Google Tag Manger。此程序包https://www.npmjs.com/package/@nuxtjs/google-tag-manager提供了我所需要的。他们给出的示例假设我想从组件内部调用该函数:

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

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

import GTM from '@nuxtjs/google-tag-manager';

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

但是结果是:

TypeError: _nuxtjs_google_tag_manager__WEBPACK_IMPORTED_MODULE_3___default.a.pushEvent is not a function

我也尝试过:

import Vue from 'vue';
const vm = new Vue();

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

但是结果是:

TypeError: Cannot read property 'pushEvent' of undefined

有趣的是,当我登录vm时,我将$gtm: undefined视为属性。因此,显然该插件在那里,但尚未激活?我知道我在这里缺少一些基本的东西...

javascript module vuex google-tag-manager nuxt
1个回答
0
投票

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

它是推送而不是pushEvent

© www.soinside.com 2019 - 2024. All rights reserved.