Angular &引用;无法读取属性';设置';“未定义”的定义;使用离子存储时';s clear()和remove()函数

Angular &引用;无法读取属性';设置';“未定义”的定义;使用离子存储时';s clear()和remove()函数,angular,ionic-framework,ionic2,local-storage,Angular,Ionic Framework,Ionic2,Local Storage,我正在尝试为我的项目创建一个简单的登录和注销系统,在该系统中,一旦我登录,详细信息将使用“@ionic/storage”库存储在本地存储中,然后在初始化时检索这些详细信息,并在应用程序运行时使用 一切正常,但当我点击“联系人图标”(我的案例中的注销按钮=>参考下面的屏幕截图)时,错误弹出 “错误类型错误:无法读取未定义的属性“set” 。我是离子2和angular 2开发的新手,我无法解决这个问题!我希望关于这个问题的信息是足够的,并期待着一个解决方案。提前谢谢你 home.ts文件如下所示

我正在尝试为我的项目创建一个简单的登录和注销系统,在该系统中,一旦我登录,详细信息将使用“@ionic/storage”库存储在本地存储中,然后在初始化时检索这些详细信息,并在应用程序运行时使用

一切正常,但当我点击“联系人图标”(我的案例中的注销按钮=>参考下面的屏幕截图)时,错误弹出

“错误类型错误:无法读取未定义的属性“set”

。我是离子2和angular 2开发的新手,我无法解决这个问题!我希望关于这个问题的信息是足够的,并期待着一个解决方案。提前谢谢你

home.ts文件如下所示

从'@angular/core'导入{Component};
从“离子角度”导入{NavController,Platform};
从“../../services/firebase.service”导入{FirebaseService};
从'@ionic/Storage'导入{Storage};
从“../../classes/Lot”导入{Lot}
从“../../classes/Handler”导入{Handler};
@组成部分({
选择器:“主页”,
templateUrl:'home.html'
})
导出类主页{
//变量来跟踪应用程序状态
appState:string=“default”;
login错误:布尔值=false;
登录:boolean=false;
注销:布尔值=false;
//活动变量
activeLotKey:string;
活跃地段:地段;
//包含该区域停车场列表的lots变量
处理程序:处理程序[];
处理者:处理者;
//构造函数=>初始化lots变量
构造函数(公共navCtrl:NavController,公共平台:平台,公共fs:FirebaseService,公共存储:存储){
this._fs.getHandlers().subscribe(handlers=>this.handlers=handlers);
platform.ready()。然后(()=>{
storage.ready()。然后(()=>{
storage.get('handler')。然后((handler)=>{
if(handler){
this.handler=handler;
log(this.handler);
this.\u fs.getLot(this.handler.lotKey).subscribe(lot=>{
this.activeLot=lot[0];
console.log(this.activeLot);
});
//console.log(此.lot);
}否则{
this.appState='login';
console.log('将状态更改为'+this.appState);
}
});
});
});
}
登录(用户名:string,密码:string){
for(让此.handlers的处理程序){
if(handler.username==username&&handler.password==password){
日志(“用户名:“+Username+”和密码“+Password+”正确…”);
this.handler=handler;
this.handler.isLoggedIn=true;
this.fs.updateHandler(this.handler.key,this.handler);
this.login错误=false;
这个.setHandler();
这个.getHandler();
返回;
}
}
控制台日志(“用户名:“+Username+”和密码“+Password+”不正确!!!”;
this.login错误=true;
}
注销(){
this.handler.isLoggedIn=false;
this.fs.updateHandler(this.handler.key,this.handler);
this.removeHandler();
这个.getHandler();
}
setHandler(){
this.storage.ready()。然后(()=>{
this.storage.set(“handler”,this.handler)。然后((d)=>{
log(“处理程序被写入本地存储器”,d);
},(e)=>{
console.log(“插入时出错”,e);
});
});
}
getHandler(){
this.storage.ready()。然后(()=>{
this.storage.get('handler')。然后((handler)=>{
if(处理程序){
this.handler=handler;
log('get storage function'+handler);
这个._fs.getLot(handler.lotKey).subscribe(lot=>{
this.activeLot=lot[0];
console.log(this.activeLot);
});
this.appState='default';
log(“将appState更改为默认值”);
}否则{
this.appState='login';
console.log('将状态更改为'+this.appState);
}
});
});
}
removeHandler(){
this.storage.ready()。然后(()=>{
this.storage.clear()然后((d)=>{
log(“处理程序已从本地存储中删除”,d);
},(e)=>{
console.log(“删除时出错”,e);
});
});
}
变更状态(状态:字符串,批次?:批次){
若有(地段){
this.activeLot=lot;
this.activeLotKey=lot.$key;
}
console.log('将状态从'+this.appState+'更改为'+state');
this.appState=状态;
}

}
您的问题是
清除()

清除整个键值存储。警告:热

使用
clear()
时,没有
处理程序
获取
。因此需要使用
删除(键)


请参阅。

您这里的问题是
clear()

清除整个键值存储。警告:热

使用
clear()
时,没有
处理程序
获取
。因此需要使用
删除(键)


请参阅。

我已经尝试使用“删除(键)”了,但我得到了相同的错误。我用一个指向代码的git链接更新了我的帖子。提前谢谢。我已经尝试过使用“删除(键)”了,但我也遇到了同样的错误。我用一个git链接更新了我的帖子,链接到我的代码。先谢谢你。