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
相关产品推荐
相关产品推荐

