Я пытаюсь показать модал из компонента, который находится в модуле, отличном от того, в котором находится модал. Модал является модальным для навигации, поэтому я сначала загружаю RootModalComponent
с маршрутизатором <page-router-outlet></page-router-outlet>
и onInit
, который я перенаправляю на первый модал. Вся эта первая часть работает хорошо, но когда я закрываю первый модальный, я получаю эту ошибку:
CONSOLE ERROR [native code]: ERROR Error: No componentRef found in DetachedRouteHandle
CONSOLE ERROR [native code]: ERROR CONTEXT {
"view": {
"def": {
...
"name": "page-router-outlet",
"attrs": [],
"template": null,
"componentProvider": null,
"componentView": null,
"componentRendererType": null,
"publicP
Эта ошибка возникает, когда я вызываю метод ниже из FirstModalComponent
:
onClose(): void {
this.modalParams.closeCallback();
}
Самое странное, что когда я закрываю модальное с SecondModalComponent
, все в порядке!
Я следовал Nativescript
doc: https://docs.nativescript.org/ui/modal-view-ng для реализации навигации с модальными представлениями, за исключением того, что моя конфигурация маршрутизатора сильно отличается, и RootModalComponent
не вызывается компонентом из того же module
.
маркеры-routing.Module.ts
const routes: Routes = [
{ path: 'first-modal', component: FirstModalComponent },
{ path: 'second-modal', component: SecondModalComponent },
];
@NgModule({
imports: [NativeScriptRouterModule.forChild(routes)],
exports: [NativeScriptRouterModule]
})
export class MarkersModalRoutingModule {}
markers.module.ts
@NgModule({
declarations: [
FirstModalComponent,
SecondModalComponent,
RootModalComponent
],
imports: [
NativeScriptCommonModule,
NativeScriptFormsModule,
MarkersModalRoutingModule
],
schemas: [NO_ERRORS_SCHEMA],
entryComponents: [
RootModalComponent
]
})
export class MarkersModalModule { }
корневой modal.component.ts
export class RootModalComponent implements OnInit {
constructor(
private router: RouterExtensions,
private activeRoute: ActivatedRoute
) { }
ngOnInit() {
this.router.navigate(['first-modal'], { relativeTo: this.activeRoute });
}
}
корень-modal.component.html
<page-router-outlet></page-router-outlet>
Кто-нибудь знает обходной путь?