React transition group实现动画时不生效问题?

作者站长头像
站长
· 阅读数 16
const [show, setShow] = useState(false);


<button onClick={() => setShow(!show)}>click</button>

<CSSTransition 
    in={show} 
    addEndListener={
        (node, doneCallBack) =>
          node.addEventListener("transitionend", doneCallBack)
      } 
    classNames="ccc"
    >
        <div className='ddd'></div>
</CSSTransition>
.ddd {
  width: 100px;
  height: 100px;
  margin-top: 100px;
  background-color: lightblue;
  transition: opacity 1s linear;
  display: none;
}
.ccc-enter {
  opacity: 0;
  display: block;
}
.ccc-enter-active,
.ccc-enter-done {
  opacity: 1;
  display: block;
}
.ccc-exit {
  opacity: 1;
  display: block;
}
.ccc-exit-active,
.ccc-exit-done {
  opacity: 0;
  display: none;
}

点击按钮的时候,div可以动画出来;再点击让div消失的时候,就一下消失了,没有动画,怎么解决?

回复
1个回答
avatar
test
2024-07-11

unmountOnExit

回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容