【问题标题】:TS2304: Cannot find name 'Router'TS2304:找不到名称“路由器”
【发布时间】:2017-11-26 02:27:33
【问题描述】:

我在重定向到 Angular 2 Ionic 应用程序中的某个页面时遇到了一些问题。我遵循了以下示例:https://embed.plnkr.co/?show=preview。然而我似乎无法让它工作,因为我不断收到这个错误:'TS2304 找不到名称'Router''

我的 IDE 在第 12 行的 constructor() 中显示 'Router' 关键字的错误。

我的代码:

import {Component} from '@angular/core';
import 'rxjs/Rx';
import {BackandService} from '@backand/angular2-sdk';
import { Router } from '@angular/router';

@Component({
  templateUrl: 'user_auth.html',
  selector: 'page-user-auth',
})
export class UserAuthPage {

  constructor(private backand: BackandService, public router: Router) {
    this.backand.user.getUserDetails().then(
      (res: any) => {
        if (res.data) {
          console.log(res.data);
          this.router.navigate('/login');
        }
      },
      (err: any) => {
        null;
      }
    );
  }

有什么想法吗?

提前致谢。

编辑:我意识到为时已晚;如果你正在使用 Ionic 框架,你应该使用 Ionic navigation 而不是 Angular 2 路由。这最终帮助了我。

【问题讨论】:

  • 我想你忘了保存 plunker...
  • 例如。是回溯的。现在您需要使用 RouterModule,并使用路由对其进行配置。在您的根模块中,声明为 RouterModule.forRoot(Routes)

标签: angular ionic-framework routing


【解决方案1】:

问题:

 this.router.navigate('/login');

应该是

 this.router.navigate(['/login']);

【讨论】:

  • 为什么这被否决了? @Vivek Doshi 是正确的,router.navigate 参数需要一个数组而不是字符串。
  • @snaplemouton,谢谢 :) ,不知道谁否决了这个答案。
  • 嗨 Vivek,这是解决方案的一部分。我尝试重新安装(安装最新版本)@angular/router,并加上方括号,提供了解决方案:) 谢谢!
  • @pieterjanvdp 请你也给答案投票好吗?
  • @VivekDoshi 我做了,但由于我的声望不到 15,我的投票没有公开显示
猜你喜欢
  • 2019-04-21
  • 1970-01-01
  • 2022-01-20
  • 2017-08-11
  • 2017-08-23
  • 1970-01-01
  • 2017-11-03
  • 2019-12-24
  • 1970-01-01
相关资源
最近更新 更多