Angular Dart Router:即使canReuse()返回false

时间:2018-10-29 17:45:10

标签: dart angular-dart angular-router

我正在使用dart 2.0.0

使用dart 1.24.3和相关的角度路由器,我有一个组件,CanReuse()总是返回false。在这种情况下,当我再次导航到同一组件时,将创建一个新实例。 第一次调用时,调用onActivate(),第二次调用时,执行CanReuse(),最后调用新实例上的onActivate()方法。

现在,在最新版本中,当我们第二次导航到同一组件时,不会调用CanReuse()onActivate(),而是使用该组件的相同实例。 有什么办法可以改变这种行为?

编辑1: 考虑一下您是否拥有一个菜单,并且每个菜单项都导航到一个组件。如果按相同的菜单项,则将调用相同的组件。以我为例,该组件可以管理来自不同服务器的数据,因此我可以同时激活多个数据集(但仅显示一个,几乎像一个选项卡..)。我有一个开放数据集的列表,其中列出了“未显示”的数据集,您可以再次选择它们。有一种机制可以保留数据并根据所选实例重新初始化新创建的实例。 从理论上讲,我只能在一个实例中管理所有内容,但是由于逻辑非常复杂,我想避免使用它,无论如何,我需要知道何时菜单项组件(新的或从现有菜单项初始化)数据集)(例如,通过onActivate()调用)。 目前,只有当我选择不同的组件(例如,组件A,组件B,然后再选择组件A)时,此方法才有效。 如果我先调用组件A,然后再调用组件A,则不会调用onActivate()方法,并且我不知道何时需要其他数据集。

0 个答案:

没有答案