【发布时间】:2019-08-20 09:52:21
【问题描述】:
我正在尝试将 JSON 对象发布到具有 2 个字段的 API。但是,如果这些字段为空(即表单上没有输入值),我想发送一个空数组。
表单部分允许 2 个票务选项:付费和免费,如果选择免费,则不会在这 2 个字段中输入任何值。
这是pricing 和ticketing 选项在我的状态下的样子:
ticketing: "" // this would be either 0 or 1
pricing: [
{
price: "",
currency: "",
}
],
这就是我将它发送到我的 API 的方式:
const info = {
ticketing: this.state.ticketing,
price: [
{
currency: this.state.currency,
price: this.state.price,
}
],
}
axios
.post(`https://www.somewhere.com`, {
info
})
当没有为price 和currency 输入值时,表单帖子:
price: [{}]
0: {}
我想发布:
price: []
相反,请告诉我如何做到这一点。
我已更新我的答案以表明 API 接收单个常量中的数据。
感谢您的帮助!
【问题讨论】:
-
因为你传入数组的对象,当字符串为空时,你会在数组中得到一个空对象。如果字符串存在,您可以简单地添加添加对象的逻辑,如果不存在则只添加一个空数组。
-
我会选择
let pricing = ...而不是const,然后在post之前使用pricing.price = pricing.price.filter(p => Object.entries(p).length !== 0) -
@WillAlexander 我已经更新了我的答案以表明 API 接收单个常量中的数据。
标签: javascript arrays json reactjs post