对于某个 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对象内的任何虚假元素,其中包括空字符串。
慕桂英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,
},
添加回答
举报
0/150
提交
取消