Ionic 2的BackgroundMode插件未定义
问题描述:
我已按照Ionic 2 Docs中的描述正确安装了BackgroundMode
插件。Ionic 2的BackgroundMode插件未定义
使用下面的代码:
this.backgroundMode.on('enable').subscribe(()=>{
console.log("BG Mode ENABLED");
setTimeout(function(){
try{
console.log("BG Active"+this.backgroundMode.isActive());
}catch(err){
console.log(err.message);
}
},5000);
});
返回控制台BG Mode ENABLED
,但第二部分的超时块回报:
Cannot read property isActive of undefined
任何想法是什么原因造成的?
答
当您对回调使用function() {}
语法时,函数中的上下文(this
)会发生变化。使用arrow functions捕捉到正确的上下文:
this.backgroundMode.on('enable').subscribe(()=>{
console.log("BG Mode ENABLED");
setTimeout(() => { // Use arrow function here
try{
console.log("BG Active"+this.backgroundMode.isActive());
}catch(err){
console.log(err.message);
}
},5000);
});
Documentation on arrow functions。请参阅this section了解它与function() {}
语法的不同之处。
谢谢,当我回来的时候我会尝试它:)虽然只是阅读了文档,但似乎是这样的问题 – ldmo