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

相关内容

热门资讯

技巧知识分享“斗棋联盟辅助”智... 自定义斗棋联盟辅助系统规律,只需要输入自己想要的开挂功能,一键便可以生成出微扑克专用辅助器,不管你是...
玩家必备科普“兴动互娱游戏辅助... 《玩家必备科普“兴动互娱游戏辅助器好用吗”pokemmo手机版脚本(原本有挂)》 兴动互娱游戏辅助器...
科技通报“财神十三章安装包”h... 科技通报“财神十三章安装包”hhpoker软件靠谱吗(素来真的是有挂);财神十三章安装包软件透明挂更...
最新研发“佛手在线13道辅助”... 1、最新研发“佛手在线13道辅助”wepoker怎么拿到好牌(一贯是真的有挂)(UU poker、佛...
揭秘关于“闽游十三水辅助”aa... 揭秘关于“闽游十三水辅助”aapoker ai插件(其实存在有挂);闽游十三水辅助软件透明挂作为一款...
一分钟秒懂“微乐家乡麻辣自建房... 自定义微乐家乡麻辣自建房辅助app系统规律,只需要输入自己想要的开挂功能,一键便可以生成出微扑克专用...
重大通报“宝宝游戏辅助器”hh... 重大通报“宝宝游戏辅助器”hhpoker免费辅助器(一直是真的有挂);亲真的是有正版授权,小编(透视...
终于清楚“四川家园辅助器”we... 终于清楚“四川家园辅助器”we-poker靠谱吗(起初存在有挂);亲真的是有正版授权,小编(透视辅助...
专业讨论“蛮王辅助器”wepo... 专业讨论“蛮王辅助器”wepoker辅助器是真的吗(从来有挂);原来确实真的有挂(需添加指定薇136...
发现一款“开挂科技软件免费”w... 发现一款“开挂科技软件免费”wepoker高级辅助(切实是有挂)是一款可以让一直输的玩家,快速成为一...