You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

FluentUI DetailsList项状态已更新但组件渲染异常求助

问题分析与解决方案

问题原因

点击按钮修改行颜色时,若直接修改原数组中对象的属性,数组本身的引用并未改变。React依赖浅比较判断状态变化,数组引用不变的情况下,组件不会触发重渲染,导致UI无更新;而排序操作会生成新的数组引用,触发重渲染后颜色才会变化。

修复步骤

  1. 修改按钮点击的处理逻辑,通过创建新数组和对象保持状态不可变性:
const handleToggleHighlight = (id: number) => {
  setDatas(prevDatas => 
    prevDatas.map(row => 
      row.id === id ? {...row, isHighlighted: !row.isHighlighted} : row
    )
  );
};
  1. 确保行样式正确绑定isHighlighted状态:
<tr style={{ backgroundColor: row.isHighlighted ? 'yellow' : 'white' }}>

修改后,点击按钮会生成新的数组与对象,React能检测到状态变化并触发重渲染,行颜色会立即更新。

内容的提问来源于stack exchange,提问作者Dhawooth Ibnu Shahaman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 02:52:05