gpt4 book ai didi

reactjs - 连续成功触发两个 useReducer 钩子(Hook)

转载 作者:行者123 更新时间:2023-12-02 18:36:23 25 4
gpt4 key购买 nike

我有一个 useReducer 钩子(Hook)

const [state, dispatch] = React.useReducer(reducer, initialState);

有两种情况在状态上设置字符串

function reducer(state, action) {
switch (action.type) {
case 'ONE':
return { a: action.payload };
case 'TWO':
return { b: action.payload };

default:
throw new Error('You have probably mispelt the action name');
}
}

如果我连续调用调度两次,则只有最后一次调用会注册,就像组件设置状态一样。

dispatch({ type: 'ONE', payload: 'some string' });
dispatch({ type: 'TWO', payload: 'some other string' });

如何让两个调度调用都注册,而不仅仅是最后一个?

最佳答案

你正在凌驾于国家之上。

不要使用 return { a: action.payload }; ,而是使用:

return { ...state, a: action.payload };

其他情况也是如此

关于reactjs - 连续成功触发两个 useReducer 钩子(Hook),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54605190/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com