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