反应过渡组和动画

时间:2018-01-22 00:47:30

标签: reactjs reactcsstransitiongroup react-transition-group

问题是我有三种状态:默认,错误和成功。根据状态,将特定组件呈现到dom中。 当这个组件进入或离开时,我需要添加一个淡出动画。

我已尝试过自定义CSS,GSAP(但不想在我的项目中安装更多软件包),现在尝试使用react-transition-group。

为了保持简单,我已经创建了"错误"组成如下:

export default class NewsletterFormError extends React.Component {
   componentWillMount() {
   }
   componentDidMount() {
   }
   render() {
      return (
        <div className="NewsletterFormError">
          I'm an error message
        <style jsx>{`
          .NewsletterFormError {
            font-size: 50px;
          }  
        `}</style>
        </div>
    )
  }
}

在索引页面上我有:

    { this.state.formError &&
        <CSSTransitionGroup
        transitionName="test"
        transitionAppear={true}
        transitionAppearTimeout={200}            
        transitionEnter={true}
        transitionEnterTimeout={2000}
        transitionLeave={true}
        transitionLeaveTimeout={2000}>
          <NewsletterFormError />
        </CSSTransitionGroup>
      }

对于某些共鸣,当this.state.formErrortrue时,组件呈现并且淡入完成,但当状态变为false时,淡出不起作用。< / p>

1 个答案:

答案 0 :(得分:4)

不幸的是,纯粹的React CSS Transition组在卸载组件时无法触发动画。有关详细信息,请参阅this github issueThis repo with a comparison of animation methods in react可能会有所帮助,他们建议将React CSS Transition组与GSAP或Anime.js一起使用