javascript - 如何调度两个动作,第一个完成后的第二个
问题描述
应用程序是这样的:
actionGetData
- 它分派一个 API 获取请求,该请求检索一些数据并将其显示在应用程序中。第一次在主组件中调度actionToggle
- 应用程序中有一个切换按钮,当单击该按钮时,它会从上面显示的数据中修改一个值,向服务器发送一个 PUT 请求
问题是屏幕上的数据没有更新,所以我假设我们需要再次调用actionGetData
。
我认为应该使用 async await 来完成,所以actionGetData
等待进行actionToggle
更改。这是正确的方法吗?
这是代码:
const ChildComponent = () => {
const dispatch = useDispatch();
const { data } = useSelector((state) => state.myData, shallowEqual);
const toggleValue = (value) => {
const payload = { resource: !value };
dispatch(actionToggle(payload));
dispatch(actionGetData());
}
return (
<div>
...
<button onClick={() => toggleValue(value)}>click me</button>
</div>
);
}
在这种情况下它似乎不起作用,试图使切换功能异步:const async toggleValue = ...
并await
在调度操作之前添加,仍然不起作用。
有什么建议么?
解决方案
推荐阅读
- python - What is the name of Python's "vars()" function in vb.net?
- java - CloudFlare blocks download from JSoup
- visual-studio-code - Can't find missing VS Code 1.43 key bindings to replace cursor keys with h,j,k,l for the file explorer (most others included here)
- angular - Delete errors from one Form Field in Angular's Reactive Forms
- django - Django 查看错误:分配前引用的局部变量-> if 语句中的缺陷?
- java - Application behave different if i run it from Android stuido or i instal it using apk created by Android studio
- python - Random numbers for large populations
- python - 从python中的列表中删除具有某些值的字符串
- regex - regex print all lines before next new line with sed
- angular - Ionic/Angular: How to bind an input decorator to a form control value?