angular - Angular sidenav 似乎在单击的每个链接上都会刷新
问题描述
初始视图是一个登录组件。一旦用户登录,他们就会被重定向到“home”组件。Home 组件有一个顶部工具栏,以及一个 sidenav。sidenav 包含用户可以点击的链接。单击链接时,sidenav 似乎没有完全完成“突出显示”动画,但似乎刷新了整个页面。这在 StackBlitz 示例中进行了说明,当在两个链接之间单击时,您可以看到动画停止/刷新。带有按钮的初始视图设置为模仿登录重定向。感谢您的任何意见。
链接到 StackBlitz https://stackblitz.com/edit/angular-ivy-bamdb4?file=src/app/home/home.component.html
解决方案
这样做的原因是,当您导航时,您会替换整个页面。如果您在文件中放置一个简单的语句,home.component.ts
例如:
ngOnInit() {
console.log('jancsi ' + Math.random());
}
如果您每次导航时都打开控制台,您将看到新条目。
您设置路由的方式会导致这种情况,因为您有以下顶级路由:dashboard
和userprofile
尝试像这样设置它(家庭的真正子路线)路线:
{
path: 'home',
component: HomeComponent,
children: [
{
path: 'userprofile',
component: UserProfileComponent
},
{
path: 'dashboard',
component: DashboardComponent
}
]
},
还将 routerLink (删除/
斜杠)更改为如下所示:
<a mat-list-item routerLink="dashboard">First Component</a>
<a mat-list-item routerLink="userprofile">Second Component</a>
动画不会被打断,也不会有新的ngOnInit
调用HomeComponent
检查这个Stackblitz
推荐阅读
- reactjs - 如何使用 react-native 和 socket.io 将 base64 图像从客户端发送到服务器?
- python - 我重新安装了 python,因为我遇到了 pip 问题,现在 pip 根本无法工作
- java - Docusign formDataRecipient 日期未以 UTC 形式返回?这是一个隐藏的设置问题吗?
- c - 使用for循环追加时如何从数组中删除未分配的索引
- html - 图像高度不会按比例缩小
- postgresql - dbeaver 连接到远程 postgresql 数据库超时
- swift - 如何在移动或删除后重置 UITableView 中的项目 - 以保持我的备用行颜色?
- bash - 处理命名管道时,fish shell 和 bash 有什么区别?
- r - 有没有办法在 r 中整合重叠的日期间隔?
- javascript - Redux-saga POST 方法不将对象保存在数据库中