Angular动画:组件在触发动画之前被销毁。
创始人
2024-10-24 14:00:54
0

一个可能的解决方法是将动画触发放在ngAfterViewInit生命周期钩子中执行,而不是ngOnInit中。这样可以确保组件已经初始化并完全渲染,不会在动画触发之前被销毁。 示例代码:

import { Component, AfterViewInit, ViewChild, ElementRef } from '@angular/core'; import { trigger, state, style, animate, transition } from '@angular/animations';

@Component({ selector: 'app-my-component', templateUrl: './my-component.component.html', styleUrls: ['./my-component.component.css'], animations: [ trigger('myAnimation', [ state('start', style({ opacity: 1 })), state('end', style({ opacity: 0 })), transition('start => end', [ animate('1s') ]) ]) ] }) export class MyComponent implements AfterViewInit { @ViewChild('myElement') myElement: ElementRef;

ngOnInit() { // This won't work because the element hasn't been rendered yet this.myElement.nativeElement.classList.toggle('myClass'); this.triggerAnimation(); }

ngAfterViewInit() { // This will work because the element has been rendered this.myElement.nativeElement.classList.toggle('myClass'); this.triggerAnimation(); }

triggerAnimation() { this.state = 'end'; } }

在这个示例中,我们在ngAfterViewInit的生命周期钩子中调用triggerAnimation()方法来触发动画。在ngOnInit中调用无法正确工作,因为组件尚未完全初始化并渲染。

相关内容

热门资讯

重大通报!德州透视插件,新九哥... 重大通报!德州透视插件,新九哥破解版,解密教程(有挂技术)-哔哩哔哩1、超多福利:超高返利,海量正版...
揭秘!wpk插件辅助,一起宁德... 揭秘!wpk插件辅助,一起宁德钓蟹黑科技辅助软件推荐,介绍教程(有挂存在)-哔哩哔哩1、点击下载安装...
玩家必备攻略!扑克之星辅助,西... 玩家必备攻略!扑克之星辅助,西兵互娱辅助多少钱,黑科技教程(有人有挂)-哔哩哔哩1、该软件可以轻松地...
玩家必看教程!hhpoker软... 玩家必看教程!hhpoker软件安装包,张同学俱乐部有挂,可靠教程(有挂方式)-哔哩哔哩在进入张同学...
必备教程!wejoker辅助脚... 必备教程!wejoker辅助脚本,沧海十三水私人局辅助器,详细教程(有挂工具)-哔哩哔哩1、首先打开...
重大通报!wepoker可以获... 重大通报!wepoker可以获得好牌,微信小程序广东雀神智能插件,2025新版技巧(有挂秘笈)-哔哩...
攻略讲解!hhpoker有透视... 攻略讲解!hhpoker有透视挂,衢州都莱到底有挂,安装教程(有挂方法)-哔哩哔哩1、上手简单,内置...
如何分辨真伪!wepoker线... 如何分辨真伪!wepoker线上大神,九游辅助真的假的,软件教程(新版有挂)-哔哩哔哩小薇(透视辅助...
热点推荐!aapoker万能辅... 热点推荐!aapoker万能辅助器,wpk德州局可以透视,2025新版(讲解有挂)-哔哩哔哩所有人都...
解密关于!哈糖大菠萝辅助器,拱... 解密关于!哈糖大菠萝辅助器,拱趴辅助器,规律教程(有挂透明挂)-哔哩哔哩1、每一步都需要思考,不同水...