是因为React在比较数组时使用的是浅比较(shallow comparison)的方式。当我们直接从数组中移除项时,数组的引用并没有发生变化,只是数组中的某个元素被删除了,因此React无法检测到数组的变化,也就不会重新渲染组件。
为了解决这个问题,我们可以采取以下几种方法:
总结起来,React从数组状态中移除项不会重新呈现是因为React使用浅比较来比较数组,只有数组的引用发生变化时才会重新渲染组件。为了解决这个问题,我们可以使用不可变数据结构、数组的slice方法或者key属性来创建新的数组,从而触发React的重新渲染。
领取专属 10元无门槛券
手把手带您无忧上云