猿问

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

对于某个 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;

            }

谢谢


慕尼黑5688855
浏览 121回答 2
2回答

心有法竹

你可以尝试这样的事情:Object.keys(values).forEach((key) => {  if(!values[key]) delete values[key];})它的主要作用是删除values对象内的任何虚假元素,其中包括空字符串。

慕桂英4014372

我能想到的最短的解决方案。对于一般解决方案,我会使用包装器,但如果您只需要检查少数几个属性,这个就足够了。        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,          },
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答