我遇到这个奇怪的问题,我已经开始使用Tabs和角度路由启动一个新应用。 我添加了新的“登录”页面,登录后,用户被重定向到选项卡页面。 问题是重定向后,有时仅呈现一个选项卡,有时呈现两个选项卡。 如果刷新页面或直接转到页面,将显示所有3个选项卡。 如果我在“标签”页面上启动该应用程序,则再次显示所有3个标签。
AppRoutingModule:
const routes: Routes = [
{path: 'login', loadChildren: './login/login.module#LoginPageModule'},
{path: 'home', loadChildren: './tabs/tabs.module#TabsPageModule'},
{path: '', redirectTo: '/login', pathMatch: 'full'}];
TabsPageRoutingModule:
const routes: Routes = [
{
path: '',
component: TabsPage,
children: [
{
path: 'home',
outlet: 'home',
component: HomePage
},
{
path: 'about',
outlet: 'about',
component: AboutPage
},
{
path: 'contact',
outlet: 'contact',
component: ContactPage
}
]
},
{
path: '',
redirectTo: '/tabs/(home:home)',
pathMatch: 'full'
}];
LoginPage:
export class LoginPage implements OnInit {
responseData: any;
userData = {'email': '', 'password': ''};
constructor(public navCtrl: NavController, public apiService: ApiService, public toastCtrl: ToastController) {
}
login() {
this.apiService.login(this.userData).then((result) => {
this.responseData = result;
if (this.responseData.token) {
console.log(this.responseData);
localStorage.setItem('token', this.responseData.token);
this.navCtrl.goRoot('/home');
} else {
console.log('User already exists');
}
}, (err) => {
// Error log
console.log(err);
});
}
ngOnInit() {
}}
有什么想法吗?谢谢!
答案 0 :(得分:2)
截至2018年11月1日,Ionic 4(4.0.0-beta.15)中的选项卡已完全更改。
https://github.com/ionic-team/ionic/blob/master/CHANGELOG.md#400-beta15-2018-11-01
基本上,他们已将标签更新为按钮的标签栏,可用于加载离子路由器出口,离子含量或离子导航组件。
此重构的其他一些好处包括:
答案 1 :(得分:0)
尝试更改
this.navCtrl.goRoot('/home');
到
this.navCtrl.goRoot('/tabs'); to
答案 2 :(得分:0)
第1步:
const routes: Routes = [
{
path: 'tabs',
component: TabsPage,
children: [
{
path: 'home',
outlet: 'home',
component: HomePage
},
{
path: 'about',
outlet: 'about',
component: AboutPage
},
{
path: 'contact',
outlet: 'contact',
component: ContactPage
}
]
},
{
path: '',
redirectTo: '/home/tabs/(home:home)',
pathMatch: 'full'
}];
步骤2:
this.navCtrl.goRoot('/home');
答案 3 :(得分:0)
我遇到了同样的问题。
查看HTML之后,我意识到我有问题,在“ ion-tab”中,输入“ label”为空,这会导致问题,即错误:
<ion-tab label="" icon="medkit" href="/(entidades:entidades)">
<ion-router-outlet name="entidades">
</ion-router-outlet>
</ion-tab>
我的解决方案:
<ion-tab label="The label of tab" icon="medkit" href="/(entidades:entidades)">
<ion-router-outlet name="entidades">
</ion-router-outlet>
</ion-tab>
希望对您有帮助