Y a-t-il une solution pour faire quelque chose comme terminer l'observable lorsque le ngondestroy est appelé?
Je veux dire lorsque vous n'avez qu'une instance de composant, créant un nouveau composant enfant n'est pas une solution pour moi.
J'ai essayé de remplacer Ngondestroy en modifiant la fonction dans le composant
3 Réponses :
i personnaly utilise ce morceau de code pratique https://github.com/netanelbasal/ngx-take-until-destroy J'ai fait des recherches et d'être honnête cette approche est la plus élégante que je pouvais trouver p>
De plus, vous n'avez pas à vous désabonner si vous vous assurez que l'observable complète par exemple par exemple en utilisant des opérateurs tels que Si vous créez le composant de manière dynamique, vous pouvez toujours passer l'instance du composant au lieu de "Ceci" dans "CODE>" Opérateur CODE> P> prendre code> TUNUNTIL P> ETC P>
Oui, ce forfait est exactement ce que j'essaie de réaliser, mais comme je le vois, il n'était pas testé avec Ivy et mon problème existe lorsque j'utilise du lierre
Oui. Je confirme que ce travail sans compilateur d'ivy en s'arrête lorsque Ivy est activé :( Donc toute solution pour travailler aussi avec Ivy?
Je n'en ai aucune idée pour être honnête. Il semble étrange que le moteur de rendu l'influence peut-être que cela pourrait être un bug de lierre?
Je ne le pense pas. Il semble que le noyau collecte tous les fonctions Ngondestroy au début et à tous changements après cela n'affectera pas, pas comme le vieux moteur que je pense appeler Ngondestroy
Eh bien Ngondestroy est une interface pour que vous puissiez le remplacer tout le temps ... Vous voulez compléter dans le Ngondestroy une source qui n'est jamais terminée? Vous pouvez utiliser MAIS PULEMILE ET PASSER UN BOOLEAN
// variables section
flag = true;
// somewhere when you want to subscribe
source$
.pipe(takeWhile(flag)).subscribe(()=>{});
ngDestroy(){
flag = false;
}
J'aime utiliser un sujet juste pour la destruction. Dans Ngondestroy I, je tire ensuite () et complète (); La variable destrers $ pourrait être utilisée en dehors du composant pour voir si le composant a été détruit ou non. P> someInstanceComponent.destroy$.subscribe(val => //do something);