Не удается получить доступ к свойству объекта окна в смонтированном Nuxt (Vue)

У меня есть расширение TronLink chrome, это расширение предоставляетwindow.tronWebсвойство, и я хочу получить доступ к этому свойству после загрузки документа. Я пытаюсь сделать это вmounted() раздел моего компонента страницы Nuxt:

// ...
mounted() {
  this.tronWeb = window.tronWeb;
},
// ...

но я получаю undefined.

Я решил эту проблему с таймаутом:

// ...
mounted() {
  let _this = this;

  let attempts = 0;
  setTimeout(function startGame() {
    if (window.tronWeb) {
      _this.tronWeb = window.tronWeb;
    } else {
      attempts++;
      if (attempts >= 5) {
        console.log(error);
      } else {
        setTimeout(startGame, 500);
      }
    }
  }, 0);
},
// ...

Но похоже это очень странное решение. Почему я не могу получить доступ к этому свойству прямо вmounted() раздел?

2 ответа

Попробуй это:

if (process.browser) {
  console.log('The window object:', window)
}

вы можете обратиться к:nuxt docs> раздел ssr> окно не определено

поскольку этот код отображается на сервере, вы не можете получить доступ к объекту окна.

вы можете использовать process.clientпроверять и запускать код только на стороне клиента

      if (process.client){
   console.log('do sth')
}
Другие вопросы по тегам