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

相关内容

热门资讯

重大科普!欢乐龙城2辅助功能插... 重大科普!欢乐龙城2辅助功能插件,欢乐龙城2总是真的是有辅助插件(有辅助挂技巧)1、起透看视 欢乐龙...
免费测试版!神兽辅助器功能工具... 免费测试版!神兽辅助器功能工具,神兽果然存在有辅助器工具(有辅助挂猫腻)1、完成神兽辅助器v3.3的...
科普!红心无锡麻将开挂功能攻略... 科普!红心无锡麻将开挂功能攻略,红心无锡麻将都是存在有开挂攻略(有辅助挂解密)1、实时红心无锡麻将透...
推荐一款!上品休闲开挂功能神器... 推荐一款!上品休闲开挂功能神器,上品休闲一直是有开挂神器(有辅助挂秘笈)1、上手简单,内置详细流程视...
今日百科!新青鸟大厅辅助器功能... 今日百科!新青鸟大厅辅助器功能方法,新青鸟大厅总是存在有辅助器方法(有辅助挂透视)新青鸟大厅透视方法...
专业讨论!新玉海楼茶苑辅助功能... 您好,新玉海楼茶苑这款游戏可以开挂的,确实是有挂的,需要了解加去威信【136704302】很多玩家在...
分享开挂内幕!甘孜互娱透视功能... 分享开挂内幕!甘孜互娱透视功能方法,甘孜互娱好像真的是有透视方法(有辅助挂功能)1.甘孜互娱 选牌创...
一分钟了解!胖猪竞技辅助器功能... 一分钟了解!胖猪竞技辅助器功能技巧,胖猪竞技一贯存在有辅助器技巧(真实有辅助挂)1、许多玩家不知道胖...
一分钟秒懂!欢乐五张辅助器功能... 一分钟秒懂!欢乐五张辅助器功能教程,欢乐五张切实是有辅助器教程(有辅助挂辅教程)1.欢乐五张 选牌创...
今日科普!十三十三水辅助功能a... 今日科普!十三十三水辅助功能app,十三十三水都是真的是有辅助app(有辅助挂教学)1)十三十三水免...