仅在升级到角度 15 后,路由器 getCurrentNavigation 始终返回 null

2023-12-24

这个问题是升级到Angular 15后才出现的, 我正在将状态属性传递给路由器,但 this.router.getCurrentNavigation() 返回一个空值,该值已通过router.navigate在另一个组件中

A组份:

组分B:

我可以通过使用访问组件中的状态this.state = history.state; but this.state = this.router.getCurrentNavigation()?.extras?.state ?? {};不工作, 它说 getCurrentNavigation() 返回 null。那是什么?


当我们升级到 Angular 15 时,我们遇到了同样的问题。我们通过添加新的解析器解决了这个问题。该解析器可以使用 getCurrentNavigation() 访问当前路线,因此可以将“额外”数据返回给组件。

@Injectable()
export class MyComponentResolver implements Resolve<MyComponentExtraData> {
  constructor(private router: Router) {
  }

  resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): MyComponentExtraData{
  
    return this.router.getCurrentNavigation().extras?.state['MyData'];
  }
}

然后,您可以使用activatedRoute.snapshot字典访问组件构造函数中解析器返回的数据,没有任何问题。

constructor(private activatedRoute: ActivatedRoute) {
 
    let myData = this.activatedRoute.snapshot.data['myData'] /* the myData key depends on how you defined the resolver in your route declaration*/
  }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

仅在升级到角度 15 后,路由器 getCurrentNavigation 始终返回 null 的相关文章

随机推荐

  • 无法导入 tweepy 模块

    我是安装新 python 模块的新手 我使用 pip install tweepy 安装了 tweepy 安装成功 并在 Lib site packages 中创建了 2 个文件夹 tweepy 和 tweepy 3 3 0 dist in
  • 创建 Matlab 运行线快捷方式(如 R)

    R 有一个很棒的快捷方式 可以运行光标当前所在的行 然后将光标移动到下一行 cmd return 在 matlab 中 您必须突出显示该行 然后运行突出显示的部分 shift F7 有没有办法创建 类似 R 的运行线快捷方式 我正在使用 O
  • 如何使用“cv2.perspectiveTransform”在Python OpenCV中的一组点上应用单应性?

    我想将单应性应用于以下几点 array 7 4894 1 8873 7 4973 1 8543 7 5375 1 6725 7 5681 1 522 7 5961 1 371 7 6252 1 2013 7 6504 1 031 7 667
  • RowAnimation 对于不同高度的单元格看起来很奇怪

    我在 UITableView 上动画删除和插入时遇到问题 事实是 我现在有不同的单元格高度 有些是 44 0 有些是 135 0 我有 uitableviewstyle 与不同的部分分组 每个部分的第一行是分组行 单击后 我将删除该部分中除
  • 如果哈希数组中的值相同,则将它们相加

    我在这篇文章中看到了这段代码 因为我试图根据某些条件对哈希数组中的值求和 Rails 对哈希数组中的值求和 https stackoverflow com questions 43087297 rails sum values in an
  • 将上下文从一个序列化器传递到另一个序列化器?

    使用 Django REST Framework 我有 2 个序列化器 PageSerializer and CommentSerializer CommentSerializer依赖于一些额外的 上下文 值 但它不会直接获取它 而是需要从
  • Ruby 相当于 virtualenv?

    有没有类似Python的工具虚拟环境 http pypi python org pypi virtualenv 基本上它允许你将Python包安装到沙盒环境中 所以easy install django不会进入系统范围的 site pack
  • MVC 路由不起作用

    在我的路由配置类中 我创建了一个自定义路由配置static prefix public static void RegisterRoutes RouteCollection routes routes MapRoute MyRoute co
  • 如何生成唯一、小、随机且用户友好的密钥?

    几个月前 我的任务是为我们的 Web 应用程序实现一个独特的随机代码 该代码必须是用户友好的并且尽可能小 但本质上仍然是随机的 因此用户无法轻松预测序列中的下一个代码 它最终生成了如下所示的值 Af3nT5Xf2 不幸的是 我对实施始终不满
  • 自动构建适合字符串集的正则表达式

    我们编写了系统来分析来自大型网络的日志消息 该系统从许多不同的网络元素获取日志消息 并通过正则表达式对其进行分析 例如 用户可能编写了两条规则 cron script sh script sh 0 9 在这种情况下 只会选择与给定模式匹配的
  • 得到一个“?”使用“std::cout”打印特殊(扩展)ASCII 字符时的输出中

    我想在控制台中打印扩展的 ascii 字符 我尝试了以下方法 std cout lt lt n std cout lt lt ID 678 Name n std cout lt lt Surname n std cout lt lt Gen
  • 循环 db intmap(person)

    example type person name string age int db person intmap person 我知道如何从数据库中获取一个人 但如何获取全部人呢 并将它们打印在 html 表中 Thx 这应该可以做到 my
  • 带边框图像的 Div

    设置一个容器 div 周围有一些边框图像 在我的例子中仅在左侧 底部和右侧 的好方法是什么 我把它放在页面顶部的中心 与其他所有内容重叠 就像 OSX 风格的下拉对话框一样 这是基本布局 这是我到目前为止所得到的 我可以避免内容的静态宽度
  • 调试量角器时 Intellij Idea 挂起

    我遇到了类似于中提到的问题这个问题 https stackoverflow com questions 22082195 cant debug protractor in webstorm it just hangs 我正在尝试在 Inte
  • .-main 表达式的含义

    这个表达的意思是什么 main 在以下情况下 size main main 这里 点 意思是 当前位置 Then main将是到 main 开始的距离 如果放在 main 的末尾 它也将是size主要的
  • 为什么我的排序实现中出现 NullPointerException?

    我正在做我的作业 我想为我的数组创建一个排序方法 但是 我在排序方法中遇到空指针错误 我不确定为什么 这是我下面的代码 public Object sorted getSetArray Arrays sort setArray return
  • 部署期间 CLR 存储过程的架构

    我对配置 Visual Studio 2010 感兴趣 以便在部署 C CLR 数据库项目时 它将内容放入 DBO 以外的架构中 我知道我可以更新它手动创建的函数 过程 等等包装器来实现这一点 CLR 存储过程 如何设置架构 所有者 htt
  • Haskell cabal 中的基础依赖冲突

    出现了一个问题 阴谋集团的base与依赖项冲突 cabal文件 看来我的base版本太高了 有办法降级吗base软件包版本在cabal sandbox Resolving dependencies cabal Could not resol
  • Discord JS - 获取 dm 机器人的用户的昵称

    当用户 dm 是机器人时 我想获取与机器人位于同一服务器中的用户的服务器昵称 我尝试过 message author guild members get message author id displayName 和 message aut
  • 仅在升级到角度 15 后,路由器 getCurrentNavigation 始终返回 null

    这个问题是升级到Angular 15后才出现的 我正在将状态属性传递给路由器 但 this router getCurrentNavigation 返回一个空值 该值已通过router navigate在另一个组件中 A组份 组分B 我可以