【发布时间】:2022-08-22 00:29:35
【问题描述】:
我收到此错误错误:NG04014:路由配置无效\'inspect//\':redirectTo 和canActivate 不能一起使用。重定向发生在激活之前,因此 canActivate 永远不会被执行。将 Angular 13 升级到 14 后。有人可以帮忙吗?
-
你找到解决方法了吗?
我收到此错误错误:NG04014:路由配置无效\'inspect//\':redirectTo 和canActivate 不能一起使用。重定向发生在激活之前,因此 canActivate 永远不会被执行。将 Angular 13 升级到 14 后。有人可以帮忙吗?
我认为这与验证路由器延迟加载的配置有关,该配置在Angular 14 Router breaking changes 中列出:
延迟加载的配置现在也像初始路由集一样在加载后进行验证。具有无效路由配置的延迟加载模块现在将出错。请注意,这仅在开发模式下完成,因此此更改不会影响生产。
我认为您有两种选择可以正确处理它:
- 通过返回 UrlTree 来处理守卫中的重定向:
如果任何守卫返回一个 UrlTree,则取消当前导航 并且从守卫返回的 UrlTree 开始新的导航。 https://angular.io/api/router/CanActivate
- 在
redirectTo中指定的路由上移动/应用canActivate防护,而不在同一路由上应用它。
【讨论】: