我想不通为什么这个代码工作..Vue的JS方法与参数和setTimeout的
data: {
return {
userMinerals: 0,
mineralsLimit: 1000,
miners: 0,
superMiner: 0,
minerPrice: 10,
superMinerPrice: 100,
minersLimit: 10
}
}
methods: {
counter() {
setInterval(() => {
this.userMinerals += this.miners;
if(this.checkLimit(this.userMinerals, this.mineralsLimit)) {
this.userMinerals = this.mineralsLimit;
}
}, 100);
},
addMiner() {
if (this.userMinerals >= this.minerPrice) {
this.miners += 1;
this.userMinerals -= this.minerPrice;
this.counter();
}
}
}
..但如果我尝试把参数代入计数器()的代码停止工作
methods: {
counter(typeOfCredits) {
setInterval(() => {
typeOfCredits += this.miners;
if(this.checkLimit(this.userMinerals, this.mineralsLimit)) {
typeOfCredits = this.mineralsLimit;
}
}, 100);
},
addMiner() {
if (this.userMinerals >= this.minerPrice) {
this.miners += 1;
this.userMinerals -= this.minerPrice;
this.counter(this.userMinerals);
}
}
}
从控制台我可以看到typeOfCredits得到递增,因为它应该但它不会更新视图中的值。 Thx求助
的观点有'typeOfCredits'没有反应的参考,我的意思是这是一个简单的变量,它不是'属性data'。 – yuriy636
'typeOfCredits'不是数据属性。你需要在'counter'方法中使用'this.userMinerals' – thanksd
所以我应该使用数据属性作为函数参数? –