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中调用无法正确工作,因为组件尚未完全初始化并渲染。

相关内容

热门资讯

7分钟总结!圣游辅助器,邳州友... 7分钟总结!圣游辅助器,邳州友友辅助(都是是真的挂)-哔哩哔哩1、邳州友友辅助ai机器人多个强度级别...
8分钟外挂!佛手在线辅助器苹果... 8分钟外挂!佛手在线辅助器苹果版,小闲川南手游辅助器,透明挂教程(有挂辅助)-哔哩哔哩1)佛手在线辅...
第4分钟科普!蘑菇云游破解版,... 第4分钟科普!蘑菇云游破解版,同城乐吧乐享版510k辅助(确实存在有挂)-哔哩哔哩;1、完成同城乐吧...
第四分钟外挂!老夫子拼十辅助,... 第四分钟外挂!老夫子拼十辅助,浙江游戏大厅修改器,细节揭秘(新版有挂)-哔哩哔哩一、浙江游戏大厅修改...
第十分钟解谜!广东闲来辅助,战... 第十分钟解谜!广东闲来辅助,战神辅助官方(其实是有挂)-哔哩哔哩1.战神辅助官方 ai辅助创建新账号...
第七分钟外挂!酷乐游戏辅助,闲... 第七分钟外挂!酷乐游戏辅助,闲来山水广西辅助,黑科技教程(有挂神器)-哔哩哔哩1)闲来山水广西辅助辅...
第3分钟分享!乐游coc辅助,... 第3分钟分享!乐游coc辅助,微信小程序微乐房间怎么开挂(本来真的是有挂)-哔哩哔哩1、下载好微信小...
第五分钟外挂!情怀莆仙辅助,火... 第五分钟外挂!情怀莆仙辅助,火神大厅辅助,教你攻略(有挂方针)-哔哩哔哩1、火神大厅辅助ai机器人多...
第九分钟外挂!潮汕汇鱼虾蟹辅助... 第九分钟外挂!潮汕汇鱼虾蟹辅助器,顺欣茶楼辅助软件,新2025版(有挂秘笈)-哔哩哔哩1、第九分钟外...
第六分钟揭露!来来云南辅助,方... 第六分钟揭露!来来云南辅助,方片十三张源码(原来真的有挂)-哔哩哔哩1、方片十三张源码透视辅助简单,...