反应:animationOut 不显示使用 Animated.css

React: animationOut not showing using Animated.css

我有一个 hide/display 内容的切换示例。

我使用了 https://www.npmjs.com/package/react-animated-css 并且它在显示内容时效果很好,这意味着在显示内容之后正在播放动画。

现在我按下切换按钮,内容立即消失,没有动画。

我检查了控制台,animationOut 的 class 正在工作,但似乎内容在动画有时间播放之前就关闭了,所以它被隐藏了。

如何解决这个问题?

工作代码:https://stackblitz.com/edit/react-sorgz5?file=src/App.js

import React, { Component } from "react";
import ContentComponent from "./content.js";
import { Animated } from "react-animated-css";

export default class toggleComponent extends React.Component {
  constructor() {
    super();
    this.state = {
      isShowBody: false
    };
  }

  handleClick = event => {
    this.setState({ isShowBody: !this.state.isShowBody });
  };

  checkbox = () => {
    return (
      <div>
        <span className="switch switch-sm">
          <label>
            <input
              type="checkbox"
              name="select"
              onClick={this.handleClick.bind(this)}
            />
            <span />
          </label>
        </span>
      </div>
    );
  };

  render() {
    return (
      <div>
        {this.checkbox()}

        <Animated
          animationIn="bounceInLeft"
          animationOut="fadeOut"
          isVisible={this.state.isShowBody}
        >
          <div>{this.state.isShowBody && <ContentComponent />}</div>
        </Animated>
      </div>
    );
  }
}

已解决。我需要删除 <div> 中的 this.state.isShowBody,因此可见性条件由 isVisible 控制。

<Animated
          animationIn="bounceInLeft"
          animationOut="fadeOut"
          isVisible={this.state.isShowBody}
        >
          <div>{<ContentComponent />}</div>
        </Animated>