fix(animations): do not throw errors when a destroyed component is animated (#23836)

PR Close #23836
This commit is contained in:
Matias Niemelä 2018-05-10 15:57:58 -07:00
parent 474dbf09ec
commit d2a86872a9
2 changed files with 12 additions and 2 deletions

View File

@ -649,9 +649,12 @@ export class TransitionAnimationEngine {
trigger(namespaceId: string, element: any, name: string, value: any): boolean { trigger(namespaceId: string, element: any, name: string, value: any): boolean {
if (isElementNode(element)) { if (isElementNode(element)) {
this._fetchNamespace(namespaceId).trigger(element, name, value); const ns = this._fetchNamespace(namespaceId);
if (ns) {
ns.trigger(element, name, value);
return true; return true;
} }
}
return false; return false;
} }

View File

@ -616,6 +616,13 @@ const DEFAULT_NAMESPACE_ID = 'id';
expect(element.contains(child1)).toBe(true); expect(element.contains(child1)).toBe(true);
expect(element.contains(child2)).toBe(true); expect(element.contains(child2)).toBe(true);
}); });
it('should not throw an error if a missing namespace is used', () => {
const engine = makeEngine();
const ID = 'foo';
const TRIGGER = 'fooTrigger';
expect(() => { engine.trigger(ID, element, TRIGGER, 'something'); }).not.toThrow();
});
}); });
}); });
})(); })();