首页 > 解决方案 > 检查空对象并返回布尔值

问题描述

我有一个AddContactForm允许用户添加的表单contacts

当用户填写conactNumber-onBlur它检查这是否conactNumber已经存在。

我怎样才能让CheckIfContactExists函数返回true或者false而不是promise对象?

请注意,我无法更改 api 的返回值,它只返回一个contact对象。

export default class AddContactForm extends Component {
  state = {
   ...
  };

  checkContact = () => {
    const { contactNumber } = this.state.newContactInfo;
    CheckIfContactExists(contactNumber); //return promise
  };

 render() {
   ...
    return (  
       ...
   );
  }
}

const CheckIfContactExists = async searchString => {
  const { data: contactsInfo } = await axios.get(`api/Contacts/SearchContact?contactNum=${searchString}`);
};

标签: javascriptreactjs

解决方案


在 checkContact 中使用 async await 就像你对CheckIfContactExists. CheckIfContactExits还从方法返回布尔结果

export default class AddContactForm extends Component {
  state = {
   ...
  };

  checkContact = async () => {
    const { contactNumber } = this.state.newContactInfo;
    try {
      const res = await CheckIfContactExists(contactNumber); 
      return res;
    } catch (e) {
       console.log('Error', error);
    }
  };

 render() {
   ...
    return (  
       ...
   );
  }
}

const CheckIfContactExists = async searchString => {
  const { data: contactsInfo } = await axios.get(`api/Contacts/SearchContact?contactNum=${searchString}`);
  if (Object.keys(contactsInfo).length > 0) {
     return true;
  } else {
      return false;
  }
};

推荐阅读