首页 > 解决方案 > 奇怪的 CSS 错误,在 Redux 存储更改时重新渲染 React 中的元素

问题描述

我遇到了一个我不明白其起源的小错误。

我有一些行,其数据位于 Redux 存储中,并且被迭代和渲染。可以选择和删除这些行,这会更新 Redux 并导致行正确地重新渲染。

但是,有一个轻微的 CSS 错误(如下所示):删除行后,某些复选框的边框底部属性(或者更确切地说,包含复选框元素的 div)没有正确显示。行选择复选框是单独呈现的集合的子元素,集合中的每个父元素都有一个与行的唯一 ID 相等的键。但由于某种原因,只是包含复选框的元素没有正确重新渲染。

屏幕截图

在图像中,我删除了一行,并且某些复选框的边框很不稳定。我检查了元素,然后取消检查并立即重新检查这些元素的border-bottom 属性,它又回来了。

现在,我找到了解决方法。在 React 组件中,我使用时间戳初始化状态,并在删除行时使用当前时间更新此时间戳。然后,对于包含复选框的元素,我添加一个等于rowId-currentTimestamp. 这会强制这些元素在删除行后立即重新渲染,从而解决了问题。

但是,我仍然不知道为什么会这样,并且很困惑。任何想法将不胜感激。

标签: cssreactjsreduxrendering

解决方案


推荐阅读