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

相关内容

热门资讯

黑科技科技!德扑手机上算胜率的... 黑科技科技!德扑手机上算胜率的软件(黑科技ai)确实真的有挂(有挂ai代打)-哔哩哔哩;亲真的是有正...
黑科技苹果版!aapoker能... 黑科技苹果版!aapoker能玩吗(辅助挂)从来存在有挂(有挂存在)-哔哩哔哩;亲真的是有正版授权,...
黑科技私人局!德州之星app辅... 黑科技私人局!德州之星app辅助器怎么用(智能ai)从前真的有挂(有挂苹果版本)-哔哩哔哩是由北京得...
黑科技规律!wepoke软件透... 黑科技规律!wepoke软件透明挂是真的么(透明挂)素来存在有挂(有挂系统)-哔哩哔哩这是由厦门游乐...
黑科技辅助!德州app辅助器(... 黑科技辅助!德州app辅助器(智能ai)原先是真的有挂(有挂存在)-哔哩哔哩;支持2-10人实时对战...
黑科技教学!微扑克游戏辅助器(... 黑科技教学!微扑克游戏辅助器(透视)本来真的有挂(有挂智能)-哔哩哔哩是一款可以让一直输的玩家,快速...
黑科技透明挂!德扑ai软件(黑... 这是一款非常优秀的德扑ai软件 ia辅助检测软件,能够让你了解到德扑ai软件中牌率当中全部隐藏参数,...
黑科技规律!德扑之星软件真的有... 黑科技规律!德扑之星软件真的有辅吗(黑科技)本来有挂(有挂安卓版本)-哔哩哔哩;最新版2024是一款...
黑科技模拟器!wpkplus有... 1、黑科技模拟器!wpkplus有辅助器吗(辅助挂)原来存在有挂(有挂技巧)-哔哩哔哩(UU pok...
黑科技安卓版!智星德州有挂吗(... 黑科技安卓版!智星德州有挂吗(智能ai)竟然真的有挂(有挂app)-哔哩哔哩这是由厦门游乐互动科技有...