Angular Dart Router: переход к тому же компоненту не создает новый экземпляр, даже если canReuse () возвращает false - PullRequest
0 голосов
/ 29 октября 2018

Я использую дротик 2.0.0

С dart 1.24.3 и связанным угловым маршрутизатором у меня был компонент с CanReuse(), всегда возвращающим false. В этом случае, когда я снова перешел к тому же компоненту, был создан новый экземпляр. При первом вызове был вызван onActivate(), и при вызове во второй раз был выполнен CanReuse() и, наконец, был вызван метод onActivate() для нового экземпляра.

Теперь в последней версии, когда мы во второй раз переходим к одному и тому же компоненту, CanReuse() и onActivate() не вызываются, и используется один и тот же экземпляр компонента. Есть ли способ изменить это поведение?

Редактировать 1: Представьте, что у вас есть меню, и каждый элемент меню перемещается к компоненту. Если вы нажимаете один и тот же пункт меню, вызывается тот же компонент. В моем случае вызываемый компонент может управлять данными с разных серверов, поэтому у меня может быть несколько активных наборов данных (но показан только один, почти как вкладка ...) одновременно. У меня есть список открытых наборов данных, где перечислены «не показанные», и вы можете выбрать их снова. Существует механизм, который сохраняет данные и повторно инициализирует вновь созданный экземпляр из выбранного. Теоретически я мог бы управлять всем только в одном случае, но, поскольку логика довольно сложна, я хотел бы избежать этого, и, в любом случае, мне нужно было бы знать, когда компонент элемента меню (новый или инициализируется из существующего набор данных) (с вызовом onActivate(), например ..). В настоящее время это работает, только если я выбираю разные компоненты, скажем, например, компонент A, компонент B, а затем снова компонент A. Если я вызываю компонент A, а затем снова компонент A, метод onActivate() не вызывается, и я не могу знать, когда требуется другой набор данных.

...