Использование Nuxt, Google Tag Manager и Vuex - PullRequest
0 голосов
/ 06 января 2020

Я пытаюсь отправить данные о событиях в Google Tag Manger в проекте Nuxt. Этот пакет, https://www.npmjs.com/package/@nuxtjs / google-tag-manager , предоставляет то, что мне нужно. Пример, который они приводят, предполагает, что я хочу вызвать функцию из компонента:

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

Однако мне действительно нужно вызвать функцию из модуля Vuex, в котором this не определено. Я думаю, я мог бы сделать это так:

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 как свойство. Так что, видимо, плагин есть, но он не активирован? Я знаю, что мне чего-то не хватает, если c здесь ...

1 Ответ

0 голосов
/ 28 апреля 2020

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

это пу sh не pushEvent

...