如何获得输入选择中的相关提示?

时间:2020-09-25 09:56:29

标签: reactjs react-select

当在输入中输入地址时,我遇到了一个问题,这是什么意思,提示从服务器发送到该地址,并且我在AsyncSelect中显示这些提示,但事实是我总是获得先前的状态,例如例如,我输入地址:street 22,然后我得到一条直线,然后输入33,然后得到22,如何获取用户输入的内容?即当前状态

const { addressList } = props; // get addresses to server

const [addresses, setAddresses] = useState(null);

<AsyncSelect
  cacheOptions
  defaultOptions={addressOptions}
  loadOptions={promiseOptions}
  className="modal_list-options"
  noOptionsMessage="Error find"
  placeholder="Enter address..."
  onChange={handleChangeSelectAddress}
/>

const promiseOptions = (inputValue) => {
 return new Promise((resolve) => {
  setTimeout(() => {
   resolve(onFilteredAddress(inputValue));
  }, 1000);
 });
};

const onFilteredAddress = async (address) => {
 const finallyAddress = `${selectedCity} ${address}`;
  if (address) {
   const success = await onHandleGetAddressList(finallyAddress).then(
    (data) => {
      setAddresses(data); // setState adresses
      return true;
    }
   );
   if (success) {
    return addressesList;
   } else {
      return addressOptions;
   }
 }
};

const addressesList = useMemo(() => {
 if (addresses) {
  const { payload } = addresses;
  const { data } = payload;
  const { suggestions } = data;
  return suggestions.map((el) => {
   return {
     value: el,
     label: el,
   };
  });
} else {
   return addressOptions; // defaultOptions
}
}, [test, addressList]);

0 个答案:

没有答案