如何在reactjs和Javascript中有条件地发送请求负载中的参数

68de4m5k  于 2023-01-29  发布在  Java
关注(0)|答案(2)|浏览(82)

我有以下要求,

const requestbody = {
    "applicationname":"app1",
    "applicationtype":"permenant",
    "startDate":"24 march",
    "endDate":"30 march",
    "refreshtime":""    
}

我需要将“startDate”和“endDate”发送到后端,仅当其值为非空时,例如

const requestbody = {
    "applicationname":"app1",
    "applicationtype":"permenant",
    "startDate":"24 march",
    "endDate":"30 march",
    "refreshtime":"",
    
}

否则请求正文应

const requestbodywithoutdate = {
    "applicationname":"app1",
    "applicationtype":"permenant",
    "refreshtime":30
    
}
kognpnkq

kognpnkq1#

最简单的方法是这样做:

const requestbody = {
    "applicationname":"app1",
    "applicationtype":"permenant",
    ...(startDate ? { startDate } : {}),
    ...(endDate   ? { endDate   } : {}),
    "endDate":"30 march",
    "refreshtime":"",
}

假设startDate是包含24 march的字符串,endDate是包含30 march的字符串。
我在这里使用了一个字符串作为布尔值,但是由您决定是否用values.startDate ?或其他导致布尔值的条件来替换startDate ?

yacmzcpb

yacmzcpb2#

您可以使用lodash排除它。
const requestBody = _.omitBy(myObject, _.isNil)

相关问题