微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – 使用transitionend事件监听器和react来创建转换

我正在尝试进行一个简单的过渡,在按钮单击时做出反应,其中body max-height在componentwill update上变为0,然后在componentDidUpdate上变回500px或100%.从我见过的其他问题来看,我并不是很了解它,所以有人可以给我一个例子,说明它是如何工作的吗?

我也不介意使用reactcsstransitiongroup的示例/解释.

更多信息

我理解transitionend会附加一个事件监听器,但我对此感到困惑的是如何使用它来确保组件在转换完成之前不会更新(我已经教会了自己的反应以及几乎所有的编码知识所以我不知道这是不是很难理解,但现在对我来说很难.谢谢大家!

最佳答案
所以经过一段时间的休息,我决定是时候再来一章“学生教学生”(由我指导并主演).

为了更自觉地解决我自己的问题,transitionend事件监听器将一个监听器附加到一个元素,并在转换结束时触发一个回调函数.我遇到的问题是这是异步的,因此,将它放入componentwillUpdate将无法工作,因为DOM将在转换完成之前呈现.我目前的解决方法是让按钮单击调用包含事件侦听器的函数,并使用trnasitionend的回调函数更改组件的状态.这样,在转换完成之前不会进行渲染.

码:

class Button2 extends React.Component {
  constructor(props){
    super(props)
    this.onClickHandler = this.onClickHandler.bind(this)
  }

  onClickHandler(){
    this.props.onClick("Button2")
  }

  render() {
    return (
        

codepen
(查看codepen

原文地址:https://www.jb51.cc/js/429203.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐