私はアイコンのリストでテキストの行を取り替える予定のコンポーネントです。 ReactCSSTransitionGroupを使用して、テキストの開始とアイコンの入力をアニメートしようとしています。アイコンの入力はうまく動作しますが、アニメーションを実行する前に、反応するとテキストのDOMが消去されます。コンポーネントのレンダリング状態は次のとおりです。ReactCSSTransitionGroupアニメーションが終了する前にReactが削除されています
render() {
return (
<section className="SocialBlock" onMouseOver={this.showIcons} onMouseLeave={this.hideIcons}>
{(() => {
if (this.state.iconsAreVisible) {
return (
<div className={`socialAccounts`}>
<ReactCSSTransitionGroup
transitionName="socialIcons"
transitionEnterTimeout={500}
transitionLeaveTimeout={300}
transitionAppear={true} >
{socials.map((icon, index) => {
return <div className={`icon icon-${index+1}`} key={index}><InlineSVG src={icon} /></div>
})}
</ReactCSSTransitionGroup>
</div>
)
} else {
return (
<ReactCSSTransitionGroup
transitionName="socialText"
transitionEnterTimeout={500}
transitionLeaveTimeout={500}
transitionAppear={true} >
<div key="12313"><h3>Check out the social stuff!</h3></div>
</ReactCSSTransitionGroup>)
}
})()}
</section>
);
}
なぜ動作しないのか分かりません。アニメーションクラスをleave
の代わりにappear
に切り替えることができ、それはエントリーのために機能しますが、出発はまだ突然です。
を2番目のレンダリング上のテキストの全体のCSS遷移グループをアンマウントしているため。 – wintvelt