我想在用户单击DOM元素时,让react组件翻转过来.我看到了一些关于他们的动画混音的文档,但它看起来是为"进入"和"离开"事件设置的.响应用户输入并在动画开始和完成时收到通知的最佳方式是什么?目前,我有一个列表项,我希望它翻转显示一些按钮,如删除,编辑,保存.也许我在文件里漏掉了什么.

动画混音

http://facebook.github.io/react/docs/animation.html

推荐答案

单击后,您可以更新状态、添加类并记录animationend事件.

class ClickMe extends React.Component {
  constructor(props) {
    super(props)
    this.state = { fade: false }
  }
  render() {
    const fade = this.state.fade

    return (
      <button
        ref='button'
        onClick={() => this.setState({ fade: true })}
        onAnimationEnd={() => this.setState({ fade: false })}
        className={fade ? 'fade' : ''}>
        Click me!
      </button>
    )
  }
}

参见plnkr:https://next.plnkr.co/edit/gbt0W4SQhnZILlmQ?open=Hello.js&deferRun=1&preview

Edit:更新以反映当前React,它支持animationend事件.

Reactjs相关问答推荐

从另一个组件更改组件中const的状态

URL参数和React路由中的点

Next.js:提交表单时状态尚未就绪

NextJS如何正确保存添加到购物车中的产品会话

Google Firestore无法读取图像-react

悬停轴时重新绘制自定义参照线

useEffect firebase 清理功能如何工作?

有没有办法在 React Router v6 中的路由匹配上运行一些逻辑/功能?

如何使用 App Router 和服务器组件在 Next.js 13 中实现分页

如何在一个 Next.js 项目中使用两种布局?

无法使axiosmockadapter正常工作

React Native 背景动画反转

Redux Toolkit 配置,是否适用于全栈应用程序?

react - 警告:列表中的每个子元素都应该有一个独特的 keys props ,即使我已经设置了 keys

如何在react 中正确销毁上下文?

需要在窗口调整大小时更新 React 组件

如何通过 id 从 useSprings 数组中删除元素

React Router 6.4CreateBrowserRouter子元素不显示

ClearInterval 在 React 中的 useRef 没有按预期工作

Context Api React 的问题