2

我有一个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()部分访问此属性?

4

2 回答 2

3

尝试这个:

if (process.browser) {
  console.log('The window object:', window)
}
于 2020-04-25T05:59:50.177 回答
0

你可以参考: nuxt docs > ssr section > window is not defined

因为此代码是在服务器中呈现的,所以您无法访问 window 对象。

您可以使用process.client仅在客户端检查和运行代码

if (process.client){
   console.log('do sth')
}
于 2022-02-16T09:02:43.473 回答