【发布时间】:2021-07-03 21:16:14
【问题描述】:
我的 Angular 项目中有一个登录组件,我想在用户登录系统时通过 localStorageService 保存用户 ID。
我的登录组件:
login(){
if(this.loginForm.valid){
let loginModel = Object.assign({},this.loginForm.value)
this.authService.login(loginModel).subscribe(response=>{
this.toastrService.success(response.message)
this.getUser(loginModel.email);
this.localStorageService.addToken(response.data)
this.router.navigate([""])
},responseError=>{
console.log(responseError)
this.toastrService.error(responseError.error)
})
}
}
和本地存储服务:
addCurrentUserId(user:User){
localStorage.setItem("currentUserId",user.id.toString());
}
当用户登录系统,我点击F12,出现这个错误:
core.js:6456 ERROR TypeError: Cannot read property 'toString' of undefined
at LocalStorageServiceService.addCurrentUserId (local-storage-service.service.ts:43)
【问题讨论】:
-
我认为错误是不言自明的,
user.id未定义检查您在用户内部获取的数据。如果使用 mongoDb,它很有可能是user._id而不是user.id -
请不要破坏您的帖子。通过在 Stack Exchange 网络上发帖,您已在 CC BY-SA 4.0 license 下授予 Stack Exchange 分发该内容的不可撤销的权利(即无论您未来的选择如何)。根据 Stack Exchange 政策,帖子的非破坏版本是分发的版本,因此,任何破坏行为都将被撤销。如果您想了解更多关于删除帖子的信息,请参阅:How does deleting work?。
标签: javascript angular typescript