我在我的 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/