我有一个Auth组件。该组件使用mat-tab-group
组件,该组件具有两个mat-tab
组件,使您可以轻松地在登录和注册之间返回第四。登录在索引0(第一个显示的表单)上,注册在索引1(第二个显示的表单)上。当用户尝试使用已经存在的用户名进行注册时,后端的验证将失败,我希望将用户带回“注册”,而不是默认的用户名,即第一个用户,即“登录”。选项卡更改后,我将上次查看的选项卡存储在localStorage中。
我有一个onTabChange
事件处理程序
`onTabChange(event: MatTabChangeEvent){
console.log("Change tab event: ", event);
if(event.tab.textLabel.toLocaleLowerCase() == "sign up"){
localStorage.setItem("selectedTab", event.index.toString());
window.history.replaceState({}, '', '/signup')
console.log(this.tabs);
}
if(event.tab.textLabel.toLocaleLowerCase() == 'login'){
localStorage.setItem("selectedTab", event.index.toString());
window.history.replaceState({}, '', '/login')
}
}`
我把这段代码放在哪里都没关系:
`const activeTabIndex = parseInt(localStorage.getItem('selectedTab'));
this.selected.setValue(activeTabIndex);`
我总是收到ExpressionChangedAfterItHaHasBeenCheckedError。但这真的让我感到困惑,因为我的代码在构造函数中?
我尝试添加ChangeDetectorRef
并在detectChanges();
生命周期挂钩中添加了ngAfterContentInit
行,但是相同的错误不断出现。