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、下载好智星菠萝透视辅...
此事引发广泛关注!智星德州有脚... 此事引发广泛关注!智星德州有脚本吗,哈糖大菠萝助手,学习教程(确实有挂)-哔哩哔哩1、智星德州有脚本...
更值得关注的是!hhpoker... 更值得关注的是!hhpoker脚本下载(透视)果然确实有挂(揭秘有挂开挂辅助插件)-哔哩哔哩1、起透...
据统计!智星菠萝可以辅助吗,n... 据统计!智星菠萝可以辅助吗,newpoker怎么安装脚本,阶段教程(有挂透视)-哔哩哔哩1、起透看视...
据监测!pokemmo免费脚本... 据监测!pokemmo免费脚本(透视)原来确实有挂(揭秘有挂开挂辅助工具)-哔哩哔哩1、pokemm...
据通报!wepoker轻量版透... 据通报!wepoker轻量版透视方法,wepoker俱乐部辅助,模板教程(有挂技巧)-哔哩哔哩1、打...
据权威媒体报道!wepoker... 据权威媒体报道!wepoker手机助手(透视)一直是有挂的(有挂教学开挂辅助工具)-哔哩哔哩在进入w...
围绕透视问题!wepoker透... 围绕透视问题!wepoker透视辅助下载,智星菠萝有挂吗,攻略教程(有挂辅助)-哔哩哔哩1、进入到w...
据玩家消息!pokemmo免费... 据玩家消息!pokemmo免费脚本(透视)一直有挂(有挂总结开挂辅助神器)-哔哩哔哩1、让任何用户在...
目前!poker辅助器免费安装... 目前!poker辅助器免费安装,德州局透视脚本,模板教程(今日头条)-哔哩哔哩1、让任何用户在无需p...