在 React 应用程序中添加 CSS @keyframes 动画以更改状态

Posted

技术标签:

【中文标题】在 React 应用程序中添加 CSS @keyframes 动画以更改状态【英文标题】:Adding CSS @keyframes animation to state change in React app 【发布时间】:2016-05-21 04:37:25 【问题描述】:

我有一个带有 react-router 的 React + Flux 应用程序用于路由。有一个 .button 组件,.button_active CSS 类在 React 的 onClick 事件中切换到它,并且 toggled:true 状态正在通过 Flux Action 添加到应用程序顶部的按钮对象中。

因此 .button_active 类附加了 CSS @keyframes 动画,以动画化 .button 从常规到活动的状态变化,反之亦然。

除了动画不仅在单击(状态更改)时触发,而且在每次路由更改时触发(.button_active className 已到位,但每次路由时都会创建/销毁父 div变化,因此动画继续触发)。

有没有办法避免这种行为,但仍然使用@keyframes 动画来动画状态变化?

谢谢!

【问题讨论】:

React 通常不会在每次路由更改时销毁/重新创建元素。你还有别的事情要发生。听起来您在 onClick 事件中手动操作 DOM,这可能会导致问题。请显示一些代码。 【参考方案1】:

我认为你可以尝试删除componentWillUnmount()中的.button_active,也许这样会起作用。

【讨论】:

以上是关于在 React 应用程序中添加 CSS @keyframes 动画以更改状态的主要内容,如果未能解决你的问题,请参考以下文章

将 sass/css 模块添加到 typescript react app

CSS 类选择器样式未在 React 项目中应用

为啥在 React 项目的 CSS 中添加水平滚动条时 div 的大小会减小?

在 React 中添加/重新启动 CSS 动画 onClick 后删除类

无法在 create-react-app 中使用 css 模块

将自定义 css 添加到 React-Bootstrap 组件