【发布时间】:2020-04-09 21:41:00
【问题描述】:
我有一个 TronLink chrome 扩展,这个扩展提供了一个window.tronWeb 属性,我想在文档加载后访问这个属性。我正在尝试在我的 Nuxt 页面组件的 mounted() 部分执行此操作:
// ...
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() 部分访问此属性?
【问题讨论】:
-
如果此扩展正在执行并将此变量延迟添加到窗口,那么超时对我来说似乎是合适的解决方案。我只是检查 nextTick 是否会有所作为。
-
也许扩展在
mounted函数之后执行它的代码。
标签: vue.js nuxt.js tron tronweb tronlink