react ant design select 远程搜索,调用接口 显示 加载中,接口调用完毕,要是没有数据,显示暂无数据

javascript 复制代码
import { useState } from 'react';
import { Select, Spin } from 'antd';

const { Option } = Select;

const RemoteSearchSelect = () => {
  const [loading, setLoading] = useState(false);
  const [options, setOptions] = useState([]);

  const fetchData = async (value) => {
    setLoading(true);

    // 模拟调用接口获取数据
    try {
      const response = await fetch(`https://api.example.com/search?q=${value}`);
      const data = await response.json();

      if (data.length > 0) {
        setOptions(data);
      } else {
        setOptions([]);
      }
    } catch (error) {
      console.error('Error fetching data:', error);
    }

    setLoading(false);
  };

  const handleSearch = (value) => {
    // 远程搜索数据
    fetchData(value);
  };

  return (
    <Select
      showSearch
      onSearch={handleSearch}
      placeholder="搜索"
      notFoundContent={loading ? <Spin size="small" /> : options.length === 0 ? "暂无数据" : null}
    >
      {options.map((option) => (
        <Option key={option.value} value={option.value}>
          {option.label}
        </Option>
      ))}
    </Select>
  );
};

export default RemoteSearchSelect;
相关推荐
前端 贾公子7 分钟前
Eruda:移动端网页调试利器
前端·javascript·vue.js
Hashan17 分钟前
Elpis:抽离业务代码,发布NPM包
前端·javascript·vue.js
quikai198122 分钟前
python练习第六组
java·前端·python
Qinana25 分钟前
从零开始实现 GitHub 仓库导航器(Windows 实操版)
react.js·前端框架·vite
用户479492835691525 分钟前
0.1加0.2为什么不等于0.3-答不上来的都挂了
前端·javascript·面试
rit843249926 分钟前
C#实现的远程控制系统
前端·javascript·c#
南山安34 分钟前
React学习:Vite+React 基础架构分析
javascript·react.js·面试
诺斯贝克35 分钟前
Unable to create converter for xxx.NetworkResponse<Auth> for method AuthService
前端·后端
listhi52035 分钟前
针对燃油运输和车辆调度问题的蚁群算法MATLAB实现
前端·算法·matlab
渔_36 分钟前
uni-app 页面传参总丢值?3 种方法稳如狗!
前端