Моя анимация реакции SwitchTransition не работает - PullRequest
0 голосов
/ 09 июля 2020

Когда я пытаюсь анимировать свой компонент, он не отображается на странице, но отображается на вкладке элемента. Вот как выглядит реагирующий компонент:

import React from 'react';
import { SwitchTransition, CSSTransition } from "react-transition-group";

class Reviews extends React.Component {
    constructor(props) {
        super(props);
        this.reviews = {//...}
        this.state = {
          customer: '',
          comment: '',
          activeDiv: 0
        }
    }
    
    animateReview = () => {
        if(this.state.activeDiv === this.reviews.length - 1) {
            this.setState({
                ...this.reviews[0],
                activeDiv: 0
            });
        } else {
            this.setState({
                ...this.reviews[this.state.activeDiv + 1],
                activeDiv: this.state.activeDiv + 1
            });
        }
    }
    
    componentDidMount = () => {
        this.setState({ ...this.reviews[0] });
        setInterval(() => {
            this.animateReview();
        }, 3000)
    }
    
    render() {
        const { comment, customer, activeDiv } = this.state;
        return(
            <div>
              <SwitchTransition mode="out-in">
                <CSSTransition
                 key={this.state.activeDiv}
                 addEndListener={(node, done) => {
                  node.addEventListener("transitionend", done, false);
                 }}
                 classNames="fade"
                >
                  <div className="fade">
                    <p>"{comment}"</p>
                    <p>{customer}</p>
                  </div>
                </CSSTransition>
              </SwitchTransition>
            </div>
        );
    }
}

export default Reviews;

Классы css определены для fade-enter, fade-exit, fade-enter-active и fade-exit-active. Любая помощь будет оценена по достоинству.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...