【发布时间】:2019-02-17 14:31:30
【问题描述】:
我有这样的 React 代码:
handleTransitionEnd() {
console.log('ended');
}
<div onTransitionEnd={(ev) => this.handleTransitionEnd(ev)}....
奇怪的是我的日志被ended填满了。即使我根本没有任何与元素相关的过渡 CSS 逻辑。它似乎在每次状态更改或重新渲染时触发。这是正常的吗?我希望它只在 CSS 转换结束时触发。
还有其他方法可以实现这个回调吗?
谢谢
更新:
这是一个显示出一些奇怪的沙盒:https://codesandbox.io/s/vy5wwyq5v3
单击第一个按钮会导致回调被调用 3 次,然后如果您单击第二个按钮,即使没有发生转换,它也会被调用另外 2 次。我的应用比这更极端,它被调用的频率更高。
【问题讨论】:
-
您可能应该解决组件重新渲染的原因。我们可以看到更多的代码吗?
-
不应该只触发transitionEnd吗?不管其他事情。文档似乎缺乏。
标签: reactjs