javascript - 在提交 redux 表单时循环 axios post 获取多个值

标签 javascript reactjs for-loop react-redux

在此处输入代码,其中包含我想要在 redux 表单提交上将每个值发布到 axios api 的复选框的表单列表,在下面的代码中我显示了提交功能,

值={示例1:true,示例2:true,示例3:false,示例4:true} 我的代码中的预期输出打印每个键然后发布它 但现在它这样做 将执行循环和控制台(example1,....,example4),此后将为同一个键调用帖子 4 次

submit(values) {
let data={
    "status":"INVITED",
    "buyerId": localStorage.getItem("companyId"),
    "joinType": "B",
    "supplierId": ""          
}
for (var key in values) {
    if (values[key]) {

        data.supplierId=key
       console.log(key)
       postWithAuth("networkmgtservice/api/networks",data).then((response) => {
        let status=response.data.statusCode;
        if(status="000"){
              console.log(key)
            $(`#${keyVar}`).html("Successfully sent")
        }
        else if(status=="999"){

            $(`#${keyVar}`).html(response.data.errorDescription)
        }
      })
        .catch((error) => {
            console.log(error)
        })
    }

最佳答案

当您在循环内执行异步任务时,不要使用 var 声明循环变量,因为 var 声明的变量不会保持其状态并更新为循环中的最后一个值因为循环总是比 API 调用更快,因此循环变量将仅保留映射中最后一项的值。相反,使用 let 来声明循环变量,因为它们维护状态。

submit(values) {
let data={
    "status":"INVITED",
    "buyerId": localStorage.getItem("companyId"),
    "joinType": "B",
    "supplierId": ""          
}
for (let key in values) {
    if (values[key]) {
       let requestData = {...data};
       requestData.supplierId=key
       console.log(key)
       postWithAuth("networkmgtservice/api/networks",requestData)
           .then((response) => {
                let status=response.data.statusCode;
                if(status="000"){
                    console.log(key)
                    $(`#${keyVar}`).html("Successfully sent")
                }
                else if(status=="999"){
                    $(`#${keyVar}`).html(response.data.errorDescription)
                }
           })
            .catch((error) => {
                 console.log(error)
             })
     }
}

关于javascript - 在提交 redux 表单时循环 axios post 获取多个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54676393/

相关文章:

javascript - 你知道有哪些视频教程完全专注于 JavaScript 中的闭包吗?

javascript - 设置 Highcharts 中的 y 轴最大值

ios - 运行 SKAction x 次

javascript - ASP.NET Razor Pages JavaScript 文件返回未定义的错误

javascript - 如何使用 react-google-maps 显示多个标记

javascript - 如果我两次使用相同的 react/redux 组件,它们会共享状态吗?

reactjs - 如何获取 redux-form 中嵌套字段嵌套的数据?

javascript - React - 动态表中的 OnChange 调用会产生 Uncaught TypeError

c - for循环中指针作为索引值

C 中循环的混淆