【发布时间】:2019-12-27 19:08:43
【问题描述】:
我正在开发一个 React 项目,用户可以在其中上传和删除项目中的照片。上传新图像后,只有选择了相应的项目,用户才能看到它。检查的解决方案相当简单
if
(selectedProject.projectID=== imageMetadata.projectID)
在哪里
- selectedProject.projectID:当前选中项目的ID(来自 Redux 商店)
- imageMetadata.projectID:上传图片所属的项目ID。
所有这些都是在 async 函数中完成的,我们面临的问题是,即使在 selectedAlbum.albumID 在其他任何地方都发生了变化,这个函数仍然有它的旧值。是因为函数是异步的吗?
这是我的代码:
let projectId = selectedProject.projectID;
const responses = await Promise.all(
filesToUpload.map( async (file) => {
let res = await imageStoreApiHandler.uploadPhoto(file, projectId);
notifyUploadProgress(count++, total, notifcationKey);
if (res.status === 200) {
let imageMetadata: any = res.data[0];
if (selectedProject.projectID === imageMetadata.projectID) {
addImage(imageMetadata);
}
}
return res;
}));
【问题讨论】:
-
你是在动作里面做的吗?
-
在onClick事件里面做的,动作是什么意思?
-
一个 redux 操作 :)。可能需要更多代码来解决问题
-
以上编辑粘贴完整功能。是什么导致了这个问题?您能否就如何解决此问题提供一些指导?
标签: javascript reactjs async-await react-redux