Сообщение об ошибке между vuerouter и vue-socket.io-extended - PullRequest
0 голосов
/ 27 апреля 2019

Я получаю сообщение об ошибке при компиляции моего приложения vuejs.Удаление строк кода, связанных с маршрутизатором, похоже, устраняет ошибку.Учитывая, что мне нужен маршрутизатор, любая помощь будет оценена.Вот ошибка:

Uncaught TypeError: Невозможно использовать оператор «in» для поиска «onpagehide» в undefined at eval (polling-xhr.js? D33e: 404) в Object ../ node_modules / engine.io-client / lib / transports / polling-xhr.js (app.js: 4389) в webpack_require (app.js: 724) в fn (app.js: 101) в eval (index.js)? 6a44: 6) в Object ../ node_modules / engine.io-client / lib / transports / index.js (app.js: 4367) в webpack_require (app.js: 724) в fn (app.js: 101) в eval (socket.js? da92: 5) в Object ../ node_modules / engine.io-client / lib / socket.js (app.js: 4345)

Моя цельэто подключиться к внешнему серверу сокетов.Я перепробовал несколько похожих плагинов, все с одним и тем же сообщением об ошибке.Во время устранения неполадок, когда я удаляю «импортировать маршрутизатор из« ./routes »;»и "маршрутизатор", я получаю сообщение консоли, что я успешно подключен к моему серверу сокетов.Это должен быть конфликт между маршрутизатором и плагином сокета.

Содержимое Main.js:

import Vue from 'vue'
import './firebase.js'
import App from './App.vue'
import VueRouter from 'vue-router'
import VueFire from 'vuefire'
import SuiVue from 'semantic-ui-vue';
import 'semantic-ui-css/semantic.min.css';
//import Routes from "./routes";
import VueFlatPickr from 'vue-flatpickr-component';
import 'flatpickr/dist/flatpickr.css';
import firebase from 'firebase';
import router from './routes';
import Toasted from 'vue-toasted';
import VueSocketio from 'vue-socket.io-extended';
import io from 'socket.io-client';

Vue.use(Toasted)
Vue.use(SuiVue);
Vue.use(VueRouter);
Vue.use(VueFire);
Vue.use(VueFlatPickr);
Vue.use(VueSocketio, io('[socket_server_address_here]'));
window.$ = window.jQuery = require('jquery');

let app = '';


  if (!app) {
    /* eslint-disable no-new */
    app = new Vue({
      router,
        sockets: {
    connect() {
      console.log('socket connected')
    },
    customEmit(val) {
      console.log('this method was fired by the socket server. eg: io.emit("customEmit", data)')
    }
  },
      render: h => h(App)
    }).$mount('#app');
  }

Я должен получить консольное сообщение о том, что сокет-сервер подключен.

...