首页 > 解决方案 > 使用 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 一次而不是多次

标签: reactjsreact-redux

解决方案


您可以尝试以下方法:

deleteData = () => {
  Promise.all(
    this.state.deleteArray.map(({ name, id }) =>
      deleteAPICallDispatch(name, id)
    )
  );
};

您可以记录 this.state.deleteArray.length 以确保它是正确的。


推荐阅读