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

React中如何在将数据存入state前修改数组指定键的值

实现代码

直接在setCurrentMessage前对数组做 immutable 处理即可,不要直接修改从useSelector拿到的原Redux状态数据,避免污染全局状态:

useEffect(() => {
    if (message) {
      // 遍历生成新数组,每个元素生成新对象,仅修改status字段为true
      const formattedMessages = message.map(msgItem => ({
        ...msgItem,
        status: true
      }))
      setCurrentMessage(formattedMessages);
    }
}, [message]);

说明

  • Array.map会生成全新的数组,不会修改原message数组的引用
  • 展开运算符...msgItem会保留原消息项的所有属性,仅覆盖status字段为目标值,无需手动拼接其他字段
  • 全程不会修改Redux存储的源数据,符合单向数据流的规范

内容的提问来源于stack exchange,提问作者rSeeker

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 16:36:02