摘要 通常我们会在使用组件成功时,会在回调函数success()里面修改绑定数据(如this.setData())或继续执行其他函数,这时候会用到this;然而,编译时则报错,说:没定义。
错误实例
如,一个回调函数里修改绑定数据:
success:function(){
this.setData({
//修改data{}的数据
})
}
或者一个回调函数继续执行其他函数:
success:function(){
this.count() //count()是当前文件已定义的函数
})
以上都会报错,说setData和count没有定义。
解决办法
要解决以上未定义的错误,只需改成箭头函数(=>)即可,
如改成:
success:()=>{
this.setData({
//修改data{}的数据
})
success:()=>{
this.count() //count()是当前文件已定义的函数
})
改成上述这样,就不会报错了。
拓展
定时器的使用也是这样:
把
setInterval(function(){
},1000)
改成
setInterval(()=>{
},1000)
延迟函数setTimeout()也是这样修改即可。