React-transition-group Transition 在退出时不会触发动画

我的目标是让一个图标旋转 90 度(变平),然后被另一个图标替换,创造一种硬币旋转效果。

然后我想在进入和退出时旋转(由于 XHR 调用有延迟)。

出于某种原因,动画在进入时触发,而不是在退出时触发。

这是3种边型,in状态是相互排斥的。

<div className={c.wrapper}>
  <Transition in={loading} timeout={allTransitions}>
    {state => (
      <div style={{ ...defaultStyle, ...transitionStyles[state] }}>
        {(loading) && <SyncIcon className={c.loadingIcon} />}
      </div>
    )}
  </Transition>
  <Transition in={success} timeout={allTransitions}>
    {state => (
      <div style={{ ...defaultStyle, ...transitionStyles[state] }}>
        {(success) && <SuccessIcon className={c.successIcon} />}
      </div>
    )}
  </Transition>
  <Transition in={fail} timeout={allTransitions}>
    {state => (
      <div style={{ ...defaultStyle, ...transitionStyles[state] }}>
        {(fail) && <FailIcon className={c.failIcon} />}
      </div>
    )}
  </Transition>
</div>

以下是样式定义:

const duration = 1000
const allTransitions = {
  appear: duration,
  enter: duration,
  exit: duration
}
const easingFunction = 'ease-in-out'

const defaultStyle = {
  transition: `transform ${duration}ms ${easingFunction}`,
  transform: 'rotateY(90deg)',
  alignSelf: 'center'
}

const transitionStyles = {
  entering: { transform: 'rotateY(0deg)' },
  entered: { transform: 'rotateY(0deg)' },
  exiting: { transform: 'rotateY(90deg)' },
  exited: { transform: 'rotateY(90deg)' },
}

这是一个演示:https : //codesandbox.io/s/coin-state-indicator-3bnv4

如果大干

原因是退出动画生效之前loading就变成false了。

  1. 您需要删除条件渲染。
  2. 更改所有过渡“位于”彼此之上的 CSS

工作沙箱:https : //codesandbox.io/s/coin-state-indicator-elutx

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用react-transition-group触发动画

react-transition-group动画的布局中断

react-transition-group中的退出延迟动画

用React和react-transition-group卸载动画

React Transition Group V2跳过进入/退出状态

Nextjs + react-transition-group不设置动画

如何使“ react-beautiful-dnd”不触发“ react-transition-group”动画?

无法安装react-addons-transition-group

无法安装react-transition-group

在组件中加载初始数据时,如何在react-transition-group中暂停动画?

如何在使用react-transition-group时修复React 15.5.3 PropTypes不建议使用的警告

使用React,当使用react-transition-group时,StrictMode中不推荐使用findDOMNode作为警告

如何在带有动画的react-transition-group中显示Vertical Progress Bar

react-transition-group有条件地进行动画处理

语义 UI React Transition Group 动画第一个元素

使用React Transition Group Component构建轮播时,我缺少什么?

react-transition-group CSSTransition幻灯片在渲染中

为什么react-transition-group无法正常工作?

React Transition Group防止在参数更改时进行过渡

来自react-transition-group的CSSTransition不应用类

将回调函数放在react-transition-group中的位置

在TypeScript中键入react-transition-group处理程序

react-transition-group CSSTransition,条件为null

如何正确实现页面过渡的React Transition Group

使用React Router v4和react-transition-group v2的页面滑动动画

Vue Transition-group 的行为

react-transition-group v2和react-router-dom v4。为什么动画会同时更改内部和外部组件中的数据?

使用v-move类时,是否不触发Vue <transition-group>?

使用react-transition-group作为子组件接收新道具