我正在構建一個自動幻燈片,每5秒切換一次圖像。當新圖像進入時,我使用ReactCSSTransitionGroup創建淡入方式。問題是新圖像淡入,舊圖像仍然存在,並且兩個圖像都顯示在屏幕上,舊圖像不會離開直到新圖像完全顯示。我該如何解決?反應動畫:在狀態改變時加倍元素
這是我的滑動組件來顯示圖像:
import React from 'react';
const Slide = ({picture}) => {
if(!picture){
return <div>Loading...</div>;
}
return (
<div className='row'>
<img src={picture.url} alt={picture.title} />
</div>
);
};
export default Slide;
這是我把這種滑動部件
<ReactCSSTransitionGroup {...transitionOptions}>
<Slide key={this.props.active} picture={this.props.active}/>
</ReactCSSTransitionGroup>
這在渲染()方法的父組件的一部分父設置轉換選項
const transitionOptions = {
transitionName: "fade",
transitionEnterTimeout: 500,
transitionLeaveTimeout: 500
}
這就是樣式
.fade-enter{
opacity: 0;
}
.fade-enter-active{
opacity: 1;
transition: 0.5s ease-in all;
}
基本上在父組件中,我有一個setInterval方法,每5秒更改一次活動圖像。那麼,如何讓舊圖像在新圖像淡入淡出的那一刻消失,以便它不會改變我的頁面? 謝謝
這個關鍵可能是一個問題。你爲什麼需要鑰匙? – Sulthan
如果沒有密鑰,我寫的代碼中就不會有任何動畫。我認爲反應是尋找獨特的東西來知道它是動畫的元素。如果你有2個確切的元素,我可以看到一個視頻,它可能會動畫錯誤的 – stenwolf