Javascript 将CSS@keyframes动画添加到React应用程序中的状态更改

Javascript 将CSS@keyframes动画添加到React应用程序中的状态更改,javascript,css,reactjs,react-router,flux,Javascript,Css,Reactjs,React Router,Flux,我有一个带有React路由器的React+Flux应用程序,用于路由。在React的onClick事件中,有一个.button组件,其中按钮处于活动状态CSS类被切换到该组件,并且切换:true状态通过通量动作被添加到应用程序顶部的button对象中 因此,.button\u active类将CSS@keyframes动画附加到它,以使.button的状态从常规更改为活动,反之亦然 除了动画不仅在单击时触发(状态更改),而且在每次路由更改时触发(激活的.button\u类名已就位,但每次路由更改

我有一个带有
React路由器的React+Flux应用程序,用于路由。在React的
onClick
事件中,有一个
.button
组件,其中
按钮处于活动状态
CSS类被切换到该组件,并且
切换:true
状态通过通量动作被添加到应用程序顶部的button对象中

因此,
.button\u active
类将CSS
@keyframes
动画附加到它,以使
.button
的状态从常规更改为活动,反之亦然

除了动画不仅在单击时触发(状态更改),而且在每次路由更改时触发(激活的
.button\u
类名已就位,但每次路由更改时都会创建/销毁父div,因此动画将继续触发)外,其他操作都很好

有没有办法避免这种行为,但仍然使用@keyframes动画来设置状态更改的动画


谢谢

我认为您可以尝试删除
组件willunmount()
中的
.button\u active
,也许这会起作用。

我认为您可以尝试删除
组件willunmount()
中的
.button\u active
,也许这会起作用。

React通常不会在每次路由更改时销毁/重新创建元素。你还有别的事。听起来像是在onClick事件中手动操作DOM,这可能会导致问题。请显示一些代码。React通常不会在每次路由更改时销毁/重新创建元素。你还有别的事。听起来像是在onClick事件中手动操作DOM,这可能会导致问题。请出示一些代码。