我正在尝试使用 redux 操作更新商店。我需要分派两个动作才能得到我的结果。请注意,我无法控制 setFieldAction
,因此必须通过两个操作来完成。现在,当我调用第二个调度时,我收到一个错误,因为第一个调度尚未完成,即直到下一次渲染才会更新状态。那么我怎样才能做到这一点?
useEffect(() => {
dispatch(setFieldAction(0, "field1", "value1"));
dispatch(setFieldAction(0, "field2", "value2"));
});
答案 0 :(得分:1)
您可以在 useEffect 函数中检测 FieldAction 状态的变化并对其应用检查。例如:
useEffect(() => {
if(props.reducer?.obj1?.obj2?.FieldAction === "something"){ // check the value and dispatch the appropriate action, for example
dispatch(setFieldAction(0, "field2", "value2"));
}
}, [props.reducer?.obj1]); // this will be called whenever props.reducer.obj1 is updated
答案 1 :(得分:0)
它可以让您异步运行您的操作,因此您可以等待您需要的更改,然后以您想要的结果完成您的操作。您还可以设置它以查看操作是成功还是失败。
如果您对它的工作原理感到好奇,YouTube 上有很多关于它的很好的教程。