【发布时间】:2021-04-26 14:17:11
【问题描述】:
我正在使用 Amplify for Angular 进行用户身份验证,并且正在为用户配置文件构建一个小菜单。我想检索当前用户信息并在菜单按钮中显示用户的电子邮件。但是,在从 Amplify Auth API 检索用户数据后,DOM 不会更新,即使在确认数据成功进入之后也是如此。
HTML:
<button mat-icon-button #profile [matMenuTriggerFor]="menu">
<mat-icon>account_circle</mat-icon>
</button>
<label class="user" for="profile">{{ user?.attributes.email }}</label>
TS(注意this.user取数据后成功登录到控制台):
async ngOnInit() {
await Auth.currentUserInfo()
.then((data) => {
this.user = data;
console.log(this.user); // This successfully prints the user data
})
.catch((err) => {
console.log(err);
});
}
更奇怪的是,如果您单击菜单按钮,DOM 最终会以某种方式更新以使用户数据可见。此处录屏:https://i.imgur.com/nRAnfax.mp4
为什么在获取用户数据后 DOM 没有立即更新?为什么这似乎只在从 Amplify 检索数据时发生?
【问题讨论】:
标签: angular async-await aws-amplify