首页 > 解决方案 > 我们可以在 Axios 中做一个 If - ReactJS

问题描述

我写这篇文章是因为我想知道是否可以if在 axios 中做一个。基本上我试图只发送带有 axios 内容的变量。

我有一个像这样的全球代码:

 async handleSubmit(event) {
  this.setState({ loading: true });

  setTimeout(() => {
   this.setState({ loading: false });
  }, 2000);

 event.preventDefault();
 const {
   name_contact='', name_contact1='', endfr='', endfr_1='',
 } = this.state;


 const name = [name_contact, name_contact1].filter(v =>v).join(',');
 const end = [name_contact, name_contact1].filter(v =>v).join(',');

 await axios.post(
  ' MY_endpoint API',
  {
    name, end
  })
}

例如,如果name_contactname_contact1为空,我将name="" 使用我的 axios.post 接收。但是我试图删除名称或结束,如果它们是空的 axios.post 只发送有用的东西而不是完全空的变量。

所以我告诉自己,我可以做一个ifin axios 来检查一个变量的内容,如果有内容就发送它。

标签: javascriptreactjsparametersaxios

解决方案


它与axios无关。只需有条件地将项目添加到数据对象:

await axios.post(
  ' MY_endpoint API',
  {
    ...(name && { name }),
    ...(end && { end })
  })
}

lodash 也可以在这里为您提供帮助:

await axios.post(
  ' MY_endpoint API',
  _.pickBy({
    name, end
  }, Boolean))
}

推荐阅读