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

使用Redux时出现Attempted to assign to readonly property错误排查

问题原因及解决办法

这个错误的核心是你直接修改了从useSelector拿到的只读状态数据,而非通过Redux的action来更新状态。

Redux(包括Redux Toolkit)中,通过useSelector获取到的状态是只读的,你不能直接对transactions_list做诸如transactions_list.push(newItem)或者transactions_list = newData这类操作——这类直接修改行为会触发"只读属性赋值"的错误。

你的slice定义本身是没问题的,正确的更新方式应该通过dispatch调用saveTransactionsList来传递新数据:

import { useDispatch } from 'react-redux';
import { saveTransactionsList } from './你的slice文件路径';

// 在组件内部
const dispatch = useDispatch();

// 需要更新数据时调用
const updateTransactions = (newData) => {
  dispatch(saveTransactionsList(newData));
};

另外要注意:如果你的新数据是从原数组衍生而来(比如添加/删除元素),要确保生成新的数组引用,比如用扩展运算符:

// 正确:生成新数组后再dispatch
const newTransactions = [...transactions_list, newItem];
dispatch(saveTransactionsList(newTransactions));

// 错误:直接修改原只读数组
transactions_list.push(newItem); // 会触发只读属性错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 05:25:51