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

相关内容

热门资讯

6分钟外挂!h5新全游辅助,禅... 6分钟外挂!h5新全游辅助,禅游指尖四川修改器,细节揭秘(了解有挂)-哔哩哔哩1、每一步都需要思考,...
一分钟外挂!如何设置财神十三章... 一分钟外挂!如何设置财神十三章的辅助功能,天天爱柳州辅助,教你攻略(有挂方针)-哔哩哔哩1、玩家可以...
八分钟外挂!方片十三张外卦,创... 八分钟外挂!方片十三张外卦,创思维激k看底牌辅助,德州论坛(有挂秘籍)-哔哩哔哩亲,关键说明,创思维...
4分钟外挂!玩吧辅助工具,新天... 4分钟外挂!玩吧辅助工具,新天道挂机辅助,2025新版教程(真的有挂)-哔哩哔哩新天道挂机辅助是一种...
第8分钟外挂!陕西奇迹打锅子破... 第8分钟外挂!陕西奇迹打锅子破解,逸趣鄱阳翻精辅助,科技教程(有挂教学)-哔哩哔哩1、进入游戏-大厅...
第5分钟外挂!圣盛鄂州晃晃辅助... 第5分钟外挂!圣盛鄂州晃晃辅助,决战卡五星辅助修改器,科技教程(真的有挂)-哔哩哔哩决战卡五星辅助修...
第七分钟外挂!开心游戏辅助器,... 第七分钟外挂!开心游戏辅助器,老友广东辅助工具,攻略方法(有挂教程)-哔哩哔哩第七分钟外挂!开心游戏...
9分钟外挂!九游破解版真的假的... 9分钟外挂!九游破解版真的假的,人人燕赵辅助,大神讲解(有挂规律)-哔哩哔哩1、下载好九游破解版真的...
第七分钟外挂!微乐降序自建房辅... 第七分钟外挂!微乐降序自建房辅助app,推荐宝宝浙江辅助,扑克教程(揭秘有挂)-哔哩哔哩;1、微乐降...
2分钟外挂!蜜蜂大厅辅助插件,... 2分钟外挂!蜜蜂大厅辅助插件,新九五辅助,解说技巧(真的有挂)-哔哩哔哩1、玩家可以在蜜蜂大厅辅助插...