gpt4 book ai didi

javascript - 无法访问存储的 user_id 常量

转载 作者:行者123 更新时间:2023-11-28 03:24:12 25 4
gpt4 key购买 nike

我想在我的应用程序中调用当前用户的个人资料。为了做到这一点,我将用户存储在登录过程中。我将值 user_id 存储在我的 auth.serivice 中。然后我尝试在个人资料页面中获取此键值,以显示登录的用户数据。但我真的不知道如何使用这个id。由于我不是来自另一个页面,因此我无法使用activatedRoute 逻辑。我认为我只需要调用存储,然后将值存储在我的 information 变量中。存储的 id USER_ID 是一个数字,并且存储正在工作,我在那里看到了我的 id。如果我想在个人资料页面中调用我的 ID,则会收到错误消息:patchValue 不适用于类型编号

auth.service.ts

export const USER_ID = 'user_id';  
...
this.user = this.helper.decodeToken(res['access']); // the user id is stored value = 1

用户.service.ts

 // get a user's profile
getUserDetails(id: number): Observable<any> {
return this.http.get(`${this.url}/users/${id}/`);
}

个人资料.page.ts

information = null; // store my data here
id: number; // Id to get the user data from server is a number
...

ngOnInit() {

this.storage.get(USER_ID).then(val => { // get the stored user_id
this.id.patchValue({ user_id: val}); // store the current userid in id
console.log(this.id);
});


// Get the information from the API
this.userService.getUserDetails(this.id).subscribe(result => { // get the user data from the server
this.information = result;
console.log(result);
console.log(this.information);
console.log(this.id);
});
}

最佳答案

您的 auth.service 是 Singletown 吗?

如果auth.service没有在整个应用程序中加载,在app.module中提供,或者在Injector中使用providedIn属性,当您更改页面时,auth.service将不会加载或将创建另一个实例。

您可以在 app.module 的providers 属性中提供。

  providers: [ AuthService ]

providedIn 的示例:

@Injectable({
providedIn: 'root'
})

这个例子是指创建一个单一城镇服务。有很多方法可以解决该问题。

关于javascript - 无法访问存储的 user_id 常量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58819985/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com