我有一个允许多选和删除功能的数据网格。我的 api 中有一个删除端点;
DELETE http://localhost:8888/api/audit/id
这是动作创建者;
export function deleteAudit(audits, callback) {
let count = 0;
console.log("selected audits", audits);
const deleteItem = (auditId) => {
console.log("deleting..", auditId);
const endpoint = `http://localhost:8888/api/audit/${auditId}`;
const req = Axios.delete(endpoint, callback);
return (dispatch) => {
req.then(res => {
if (res.status == HttpStatus.OK) {
console.log("deleted", auditId);
count += 1;
if (audits[count] != null) {
deleteItem(audits[count]);
}
else {
console.log("all deleted heading to callback");
callback();
}
}
});
dispatch({type:DELETE_AUDIT, payload: audits});
}
}
deleteItem(audits[count]);
}
由于我的端点一次只允许删除一个项目,因此我使用递归函数连续调用。但是,当使用 async(thunk) 方法忽略时,这不能正常工作,它没有用新状态刷新列表。添加 thunk 调度方法后,它只会删除第一个选择,所以我完全迷失了。实现这一目标的正确方法是什么?