【发布时间】:2019-02-28 21:46:37
【问题描述】:
我有一个允许多项选择和删除功能的数据网格。我的 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 调度方法后,它只删除了第一个选择,所以我完全迷失了。实现这一目标的正确方法是什么?
【问题讨论】:
-
看来你需要dispatch(deleteItem(audits[count]))
-
@iofjuupasli 那么reducer如何知道类型呢?你能告诉我如何实现吗,我没明白?
-
好像你用的是axios。您是否尝试过使用 axios.all 而不是正常迭代?
-
@ThoVu 是的,我正在使用 axios,我不知道 axios 的功能,让我检查一下
标签: reactjs react-redux redux-thunk