и компонент LoadPanel, visibility которого прибито к параметру, становящемуся true при NavigationStart и false - при NavigationCancel/NavigationEnd/NavigationError.
Когда дочерний грид при переходе не находит у себя в url'е queryParams, он делает навигацию на текущий роут с нужными ему параметрами (номер страницы).
Эта навигация происходит, но выдается ошибка ExpressionChangedAfterItHasBeenCheckedError с ссылкой на параметр, отвечающий за visibility loadingPanel'а. Параметр изменяется в подписке на роутинг в завивимости от типа ивента, сабскрайб идет в ngOnInit. Навигация на url с параметрами в дочернем компоненте происходит вообще много позже OnInit'а.
Ошибка лечится только если изменение параметра прописывать через setTimeout(_ => this.loading = true, 0) , но наверняка же есть более элегантное решение?
где находится этот параметр
Отключи OnPush и сделай через observable
Можно еще через промисы. Но в принципе это стандартное решение. У тебя потомки меняют стейт родителя из-за этого и ошибка. Можешь ещё навигацию в тайм-аут убрать
Обсуждают сегодня