javascript - 在 React 中重新渲染 DOM

标签 javascript reactjs css-animations

我在我的 React 应用程序中使用了一些 CSS 动画,但我只遇到了一些动画节点的问题,因为其余节点没有被重新渲染,而是在渲染函数中被回收。因此,它们不会按预期显示 CSS 动画。有没有办法强制 React 重新渲染节点而不是重用它们?

最佳答案

CSS 动画取决于类或样式的变化。为了让你的动画发生,你需要改变其中的任何一个,这将迫使 react 重新渲染。所以我不期望this.forceUpdate()做出改变。

在列表中,React 会重复使用组件(例如,如果您对列表中的项目重新排序)。例如。如果您有一个列表:

<li>1. Cat</li>
<li>2. Mouse</li>
<li>3. Dog</li>

然后您将它们重新排序为:

<li>2. Mouse</li>
<li>1. Cat</li>
<li>3. Dog</li>

React 默认情况下不会交换 <li>项目。但更改 <li> 内的文本items(因为这是一个更轻量级的 DOM 更新)。 要强制 react 交换元素,您需要为每个组件提供一个 key 。 react 网站上的进一步说明:https://facebook.github.io/react/docs/multiple-components.html#children

如果您可以分享一些代码,这将使您更容易理解您的具体问题。

关于javascript - 在 React 中重新渲染 DOM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32902240/

相关文章:

css - 动画阴影css3?

javascript - 具有多变量函数的 Lodash Map

javascript - jQuery UI Bounce 进度条

javascript - 我可以更改位于 react 组件中的 div 的不透明度状态吗?

javascript - Web Worker onMessage 在 IE11 中为 null

html - 关键帧开始时意外下降

css选择伪元素动画

javascript - 使用 for 循环为 map 上的标记设置动画

javascript - 处理获取响应 - JS

javascript - 在 React Redux 中实现的获取操作返回 : "Cannot read property ' title' of undefined"