Nuxt Js Event Fires дважды

Я использую Nuxt js SSR для приложения, которое я собираю, я установил плагин Vue Event, но когда я запускаю событие, он дважды запускается на слушателе. Созданный крюк тоже работает дважды.

Модули использую: Axios, Auth, Toast

Дочерний компонент

methods: {
  initPlaylist(songs) {
    console.log(songs)
  }
},
mounted () {
  this.$events.$on('playAll', data => {
    this.initPlaylist(data.songs) //runs twice
  })
}

Родительский компонент

method () {
    playAll (songs) {
      this.$events.$emit('playAll', songs)
  }
 }

Как я могу решить эту проблему, ребята? Мне нужна ваша помощь.

2 ответа

Возможно, вам нужно вызывать метод этого родителя только на стороне клиента.

Вы можете написать код, подобный этому, чтобы предотвратить выброс на стороне сервера:

methods: {
  playAll(songs) {
    if (process.server) return

    this.$events.$emit('playAll', songs)
  }
}

или не вызывайте метод playAll на стороне сервера. (например: создано, установлено...)

Вам нужно сначала отключить это событие.

      this.$events.$off("playAll");
this.$events.$on('playAll', data => {
    this.initPlaylist(data.songs) //runs twice
})
Другие вопросы по тегам