Reactjs Redux商店更新信息为';t型复卷机
按下按钮后,我向减速器发送调度,减速器执行以下操作:Reactjs Redux商店更新信息为';t型复卷机,reactjs,react-native,redux,react-redux,Reactjs,React Native,Redux,React Redux,按下按钮后,我向减速器发送调度,减速器执行以下操作: export default function (state, action) { case 'UPDATE_DATA': const res = state; res['list'] = [...res['list'], action.payload]; return res; 我使用useSelector钩子访问数据 const select = useSelector(state
export default function (state, action) {
case 'UPDATE_DATA':
const res = state;
res['list'] = [...res['list'], action.payload];
return res;
我使用useSelector钩子访问数据
const select = useSelector(state => state);
renderData(select.userInfo.list);
但是,它似乎不会触发更新。这个代码有什么问题
(我尽量减少这个问题。因此,如果您需要更多的代码上下文,只需提问即可。)here
const res=state
您正在将相同的状态
引用传递到res
。这种方式将改变原始对象。当您返回res
redux时,它将比较res引用和state引用,并将意识到它们是相同的,不能按预期工作
您需要先创建一个州外副本:
const res = { ...state };
这样,您就不会改变原始对象,并且您的redux状态将正确更新