fix(animations): avoid animation insertions during router back/refresh (#21977)
Closes #19712 PR Close #21977
This commit is contained in:
parent
32105c8012
commit
f88fba020b
|
@ -666,7 +666,16 @@ export class TransitionAnimationEngine {
|
||||||
// code does not contain any animation code in it, but it is
|
// code does not contain any animation code in it, but it is
|
||||||
// just being called so that the node is marked as being inserted
|
// just being called so that the node is marked as being inserted
|
||||||
if (namespaceId) {
|
if (namespaceId) {
|
||||||
this._fetchNamespace(namespaceId).insertNode(element, parent);
|
const ns = this._fetchNamespace(namespaceId);
|
||||||
|
// This if-statement is a workaround for router issue #21947.
|
||||||
|
// The router sometimes hits a race condition where while a route
|
||||||
|
// is being instantiated a new navigation arrives, triggering leave
|
||||||
|
// animation of DOM that has not been fully initialized, until this
|
||||||
|
// is resolved, we need to handle the scenario when DOM is not in a
|
||||||
|
// consistent state during the animation.
|
||||||
|
if (ns) {
|
||||||
|
ns.insertNode(element, parent);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// only *directives and host elements are inserted before
|
// only *directives and host elements are inserted before
|
||||||
|
|
Loading…
Reference in New Issue