Я довольно новичок в React и Reaction-transition-group. Я делаю очень простое приложение, которое отображает слово дня, и у меня возникают проблемы с анимацией моих информационных карточек.
По сути, это работает как карусель изображений. Если пользователь щелкает стрелку влево, текущий контент смещается вправо, а новый контент смещается слева. Если пользователь щелкает стрелку вправо, текущий контент смещается влево, а новый контент перемещается справа.
Проблема в том, что с реакцией-переходной группой вы должны установить имена классов CSS при визуализации компонента. Но я не знаю, в каком направлении должен выйти компонент, пока он не будет визуализирован. Это означает, что иногда компоненты выходят из неправильного пути.
import React from "react";
import words from '../words.json';
import { TransitionGroup, CSSTransition } from 'react-transition-group';
class TodaysDefinition extends React.Component{
render(){
let {day, nextOrPrev} = this.props;
let {def} = words[day - 1 ];
//trying to set the classNames prop based on which button was pressed last.
let transitionClass = "";
if(nextOrPrev === -1){
transitionClass = "prev-defs";
}
else{transitionClass = "next-defs";}
return(
<div className="def-container">
<TransitionGroup component={null}>
<CSSTransition
classNames={transitionClass}
key={this.props.day}
timeout={{enter:300, exit:300}} >
<ol className="defs">
{def.map((def,idx) => (<li key={idx} >{def}</li>))}
</ol>
</CSSTransition>
</TransitionGroup>
</div>
)
}
}
export default TodaysDefinition;
Спасибо за вашу помощь!