javascript - React - 使用 axios 更新列表并同时刷新
问题描述
我有一个saveDocument
基本上做两件事的功能;发送更新我的文档的请求并发送另一个请求以获取包括更新记录的新数据。问题是loadDocuments
返回旧数据集,而不是更新。似乎它没有等待更新,即使使用 async/await。
保存文档
async function saveDocument() {
await updateDocument(selectedDocument);
const response = await loadDocuments(selectedGroup.id);
console.log(response);
setDocuments(response);
}
更新文档
export const updateDocument = async (groupData) => {
await api.put(`/documents/${groupData.id}`, groupData);
};
加载文档
export const loadDocuments = async (groupId) => {
const { data } = await api.get('/documents', { params: { groupId } });
return data;
};
如果我用 setTimeout 包装该函数loadDocuments
,它可以完美运行,因为有时间更新然后获得最新结果。但它也应该与 async/await 一起使用。我究竟做错了什么?例子:
async function saveDocument() {
await updateDocument(selectedDocument);
setTimeout(async () => {
const response = await loadDocuments(selectedGroup.id);
console.log(response);
setDocuments(response);
}, 2000)
}
解决方案
推荐阅读
- python - Pandas 过滤数据框以获取正值和负值
- r - 在 R 中找到零交叉
- ruby-on-rails - Ruby on Rails:“必需:true”不工作
- android - recyclview Viewholder 是一起创建的,导致滚动滞后
- c# - 在 .NET Core 项目的 VS2017 中禁用调试/启动
- safari - 如何在 Safari 应用程序扩展中收听“beforeNavigate”事件
- javascript - 如何使用 GET 发送正文请求
- android - JNI 成功构建损坏的库
- ssis - SSIS 表达式写上上一个月和上一年,假设当前月份是一月
- ios - 如何将字典字典保存到 UserDefaults [Int:[Int:Int]]?