reactjs - 使用 mapdispatchprops 删除多个数据在反应中不起作用
问题描述
尝试使用 api call 删除多条记录。
但它只删除第一条记录
deleteData = () =>
{
var deleteArray = this.state.deleteArray;
for(var i=0;i < deleteArray.length;i++){
var name = deleteArray[i].name;
var id = deleteArray[i].id;
deleteAPICallDispatch(name,id);
}
}
调用 api 的调度代码
const mapDispatchToProps = (dispatch, ownProps) => {
return {
deleteAPICallDispatch:(name,id) => dispatch(deleteAPICall(name,id)),
};
};
上面的代码只调用 API 一次而不是多次
解决方案
您可以尝试以下方法:
deleteData = () => {
Promise.all(
this.state.deleteArray.map(({ name, id }) =>
deleteAPICallDispatch(name, id)
)
);
};
您可以记录 this.state.deleteArray.length 以确保它是正确的。
推荐阅读
- cloudkit - Cloudkit 查询错误抛出系统类型错误
- r - 密度线使用 ggplot2 切割负值
- typescript - 打字稿嵌套标记/区分联合类型
- php - 从 URL 获取 Instagram 用户名 - 使用正则表达式忽略句点
- microsoft-graph-api - 即使驱动器存在,也无法检索用户的 mysite URL
- pandas - Pandas - 使用空格
- .net - 嵌入 PowerBI 报表服务器报表时处理身份验证
- c - ZooKeeper 3.4.12 C 客户端无法连接到 Solaris11 机器上的 ZooKeeper 服务器
- jekyll - 如何按作者对帖子进行分页
- terraform - 在处理完所有资源后使用专用端点应用更改