Reactjs: постепенное появление данных не работает должным образом

У меня есть кнопка в компоненте приложения, если я нажимаю на эту кнопку, я получаю следующий элемент в массиве в компоненте, но проблема в том, что переход с постепенным проявлением работает только для первого элемента, а не для следующего элемента. как я могу позволить плавному переходу работать для следующих элементов?

Мой код:

import React, { Component } from 'react';
import FadeIn from 'react-fade-in';

class App extends Component {
  constructor(props){
    super(props);
    this.state = {indexTeam:0}
  }

  nextTeam=() => {
     this.setState({ indexTeam: (this.state.indexTeam + 1) % teamList.length });
  };

  render() {
    const teams = teamList[this.state.indexTeam];
    return (
      <div>
       <FadeIn><h3>{teams.name}</h3></FadeIn>
       <br/>
       <button onClick = {this.nextTeam}>Next Team</button>
      </div>
    );
  }
}

const teamList = [
  {
    name: "1- Manchester United"
  },
  {
    name: "2- Fc Barcelona"
  },
  {
    name: "3- Inter Milan"
  },
  {
    name: "4- Liverpool"
  }
];

export default App;
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
0
0
382
1

Ответы 1

Не используйте эту библиотеку. Он делает именно то, что должен, постепенно исчезает в элементах один за другим, когда компонент (страница в вашем случае) монтируется, но вам нужен ваш переход при каждом повторном рендеринге

Если вы просмотрите библиотеку, которую вы используете (response-fade-in), вы заметите, что она переустанавливает свое состояние на componentDidMount, поэтому оно не работает, когда вы устанавливаете состояние (так что просто повторно визуализируйте его, а не размонтируйте и смонтируйте снова).

Я не придумал быстрого решения, как исправить или переписать эту библиотеку, так что подумайте о своей.

Просмотрите их реализацию (которая просто основана на переходе css) и создайте свое решение.

реакция-плавное появление: https://github.com/gkaemmer/react-fade-in/blob/master/src/FadeIn.js

Другие вопросы по теме