Birlikte Yönlendiricimde deactive
yöntemini geçersiz çalışıyorum şu:Yönlendirici'de devre dışı yöntemi nasıl geçersiz kılar?
ihracat sınıfı AnimationRouterOutlet RouterOutlet { publicRoutes uzanır: Herhangi; private parentRouter: Yönlendirici; Bazı animasyonlar oluşturabilir, böylece - Gördüğünüz gibi
constructor(_elementRef: ElementRef, _loader: DynamicComponentLoader,
_parentRouter: Router, @Attribute('name') nameAttr: string) {
super(_elementRef, _loader, _parentRouter, nameAttr);
this.parentRouter = _parentRouter;
}
deactivate(instruction: ComponentInstruction){
setTimeout(()=>{
console.log("deactivvated state");
return super.deactivate(instruction);
},1000);
}
activate(instruction: ComponentInstruction) {
console.log(instruction);
return super.activate(instruction);
}
}
, ben web sayfasını değiştirmede gecikme oluşturmak için çalışıyorum.
Ancak bu kullanarak, ben typescript derleyici hata var:
: error TS2415: Class 'AnimationRouterOutlet' incorrectly extends base class 'RouterOutlet'. Types of property 'deactivate' are incompatible. Type '(instruction: ComponentInstruction) => void' is not assignable to type '(nextInstruction: ComponentInstruction) => Promise'. Type 'void' is not assignable to type 'Promise'.
Bunu nasıl düzeltebilirim?
Teşekkürler! Gecikme eklemek için orijinal Yönlendiriciyi devre dışı bırakmalı mıyım? – uksz
'routerOnDeactivate()', bileşene eklenecek ve varsayılan olarak yerleşmek için bir söz beklemeyi destekleyecektir. Başka, daha genel yollar olabilir, ama ben henüz o kadar derinlemesine dalmadım. –
'routerCanDeactivate()' burada daha iyi bir seçim olabilir. Görünümü boşaltmadan önce bekler. –