为了账号安全,请及时绑定邮箱和手机立即绑定

避免请求对象上的空字符串值

避免请求对象上的空字符串值

慕尼黑5688855 2021-12-23 15:16:45
对于某个 axios 请求:            API.post(              `v${process.env.REACT_APP_API_VERSION}/register/company/`,              {                type: values.type,                dba: values.dba,                ein: values.ein,                file_type: values.file_type,              },如果未分配值(仍然是“”),我想避免发送参数。即我想知道在我的请求对象中只包含非空参数的最干净的方法。我可以使用 if 检查来做到这一点,但对较大请求中的每个项目都这样做是没有意义的。例如:            const postData = {              first_name: values.first_name,              last_name: values.last_name            };            if (values.middle_name !== "") {              postData.middle_name = values.middle_name;            }谢谢
查看完整描述

2 回答

?
心有法竹

TA贡献1866条经验 获得超5个赞

你可以尝试这样的事情:


Object.keys(values).forEach((key) => {

  if(!values[key]) delete values[key];

})

它的主要作用是删除values对象内的任何虚假元素,其中包括空字符串。


查看完整回答
反对 回复 2021-12-23
?
慕桂英4014372

TA贡献1871条经验 获得超13个赞

我能想到的最短的解决方案。对于一般解决方案,我会使用包装器,但如果您只需要检查少数几个属性,这个就足够了。


        const v = values; 

        API.post(

          `v${process.env.REACT_APP_API_VERSION}/register/company/`,

          {

            ...(v.type&&{type: v.type}),

            ...(v.dba&&{dba: v.dba}),

            ...(v.ein&&{type: v.ein}),

            file_type: values.file_type,

          },


查看完整回答
反对 回复 2021-12-23
  • 2 回答
  • 0 关注
  • 120 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信