Ionic 4 beta 18 - 带有 routerLink 的离子项目和离子按钮不会改变路线

Ionic 4 beta 18 - ion-item and ion-button with routerLink don't change route

我刚刚从 ionic 4 beta 17 更新到 18,并引入了 <ion-item><ion-button> 中的重大更改。 href 已替换为 routerLink

我将其添加到我的代码中,但现在路由不再起作用。 大多数情况下,编译器会抛出错误并提示 ion-item 中不存在 routerLink。

我做错了什么?还是 angular?

"@ionic/angular": "~4.0.0-beta.18",
"@ionic/core": "~4.0.0-beta.18",
"@angular/core": "^7.1.3",
"@angular/router": "~7.1.3",

<ion-item text-wrap class="nav-item" routerDirection="forward" 
        [routerLink]="p.url"
        *ngFor="let p of listOfPages; let i = index"
        [class.active-item]="checkActivePath(p.url)"
        [class.last-item]="i === (listOfPages.length - 1)">
    <ion-label class="nav-label">
        <ion-img [src]="p.icon" class="nav-icon"></ion-img>
        <div class="text-block">
            {{ p.title }}
        </div>
    </ion-label>
</ion-item>

也许在 routerDirection 之后缺少 "?

routerDirection="forward

编辑:当您使用 Ionic 组件时,您应该使用 href。 RouterLink 用于非 Ionic 组件。

在模板所在模块(使用routerLink的模块)的模块文件中导入RouterModule

import { RouterModule } from '@angular/router';
@NgModule({
    imports: [
        // ...
        RouterModule,
    ]

这就是最终对我有用的方法:

  1. 确保在每个模块中包含 RouterModule
  2. 在我使用的每个嵌套模块中

    const routes: Routes = [{
        path: '',
        component: AboutUsPage
    }];
    
  3. 我也导入了RouterModule.forChild(routes)

  4. 对于路由,我在路径前添加了 /。喜欢'/home'
  5. app-routing.ts中我使用了{path: 'about-us/:id', component: AboutUsPage},.