代码如下, 需要在页面加载的时候开始计时, 20秒后, 按钮才可以点击
<button type="primary" disabled="{{ !submitted }}">提交{{ hint }} </button>
setTimeout()在小程序里访问不到外部的函数, 不知道是怎么回事...
代码如下, 需要在页面加载的时候开始计时, 20秒后, 按钮才可以点击
<button type="primary" disabled="{{ !submitted }}">提交{{ hint }} </button>
setTimeout()在小程序里访问不到外部的函数, 不知道是怎么回事...
这是我原先的代码, 报错 Cannot read property 'countdown' of undefined
Page({
data: {
},
onCountdown: function () {
const countdown = this.data.countdown - 1;
this.setData({
countdown: countdown
});
if (countdown > 0) {
setTimeout(this.onCountdown.bind(this), 1000);
this.setData({
hint: '需要' + countdown + '秒'
})
} else {
this.setData({
hint: '',
submitted: true
})
}
},
onLoad(options) {
this.setData({
countdown: 10
});
setTimeout(this.onCountdown, 1000);
}
})
后来改成了 setTimeout(this.onCountdown.bind(this), 1000);
就可以了
百度上找的一个解释就是 bind()方法主要就是将函数绑定到某个对象,bind()会创建一个函数,函数体内的this对象的值会被绑定到传入bind()第一个参数的值
4 回答814 阅读✓ 已解决
6 回答1.3k 阅读
5 回答706 阅读
3 回答824 阅读✓ 已解决
3 回答1k 阅读
1 回答799 阅读✓ 已解决
1 回答918 阅读✓ 已解决
你的需求是想要改变disabled的状态吧,根据延时定时器20秒后改变这个状态。