使用路由器链接进行路由时,它会正确创建 URL,但不会重定向到组件并显示数据?

Posted

技术标签:

【中文标题】使用路由器链接进行路由时,它会正确创建 URL,但不会重定向到组件并显示数据?【英文标题】:When routing using router Link it creates the URL correctly but does not redirect to component and displays data? 【发布时间】:2020-09-09 23:20:04 【问题描述】:

我在 Angular 7 应用程序上工作,当路由到组件报告详细信息时遇到问题

使用路由器链接它只会在浏览器上创建 URL 链接,但不会重定向到

在我点击 Enter 之前的组件报告详细信息。

只有在我使用 href 时才能正确路由。

如果我使用 href 或路由器链接,两者都生成相同的 URL 链接

http://localhost:4200/reportdetails?id=2028

如果我使用路由器链接,我将路由器链接写为:

<a [routerLink]="['/reportdetails']" [queryParams]="id: subrep.reportID" >

当使用 href 我写如下:

<a href="/reportdetails?id=subrep.reportID">

approutingmodule.ts:

const routes: Routes = [
  path:'',redirectTo: 'ReportCategoryComponent', pathMatch: 'full',
  path:'report',component:ReportCategoryComponent,
  path:'reportdetails',component:ReportdetailsComponent,
  path:'reportdetails/:id',component:ReportdetailsComponent
];

那么路由器链接重定向问题如何解决?

【问题讨论】:

你能重现它吗?例如stackblitz.com/edit/… 假设我创建了新组件,我需要在 stackbliz 上保存我所做的保存 好的,我做我的 stackbliz 并保存在链接上 stackblitz.com/edit/… 【参考方案1】:

我看到在hrefrouterLink 提供的链接中添加了queryparams,但在路由模块id 中添加了一个url 参数。它在重新加载组件时与 href 一起使用。

根据路由模块中提供的路由,特定 id 的 url 应该是http://localhost:4200/reportdetails/2028

要使用 url 参数进行路由,您必须从 ActivatedRoute 订阅 params 或使用查询参数路由订阅queryParams

请在 stackblitz 中找到路由演示 here

【讨论】:

你能告诉我如何从激活路由订阅参数 在 stackblitz 中添加演示

以上是关于使用路由器链接进行路由时,它会正确创建 URL,但不会重定向到组件并显示数据?的主要内容,如果未能解决你的问题,请参考以下文章

Laravel反向路由的好处

我在使用 React 路由器时遇到问题,因为我的 url 在点击它时会得到更新,但页面没有被呈现

Flask从入门到精通之链接的使用

Angular 9路由给出无错误的空白页面

是否在componentWillReceiveProps中调用API对路由器参数的更改是否正确?

反应路由器:链接更改网址但不加载组件