antd pro 通过后台接口异步加载 select 数据

发布时间: 2021-07-17 14:01:13 作者: 大象笔记

想在 Ant Design Pro 后台中,通过后台接口异步加载 Select 的选项,例如文章的作者。

思路

Show me the code: 以 Antd Pro 代码为例

例如下拉选择文章的作者:

引入依赖

import React, {useState, useEffect} from 'react';
import {getAuthors} from '@/services/ant-design-pro/api';

函数式组件中定义 useState 和 useEffect

const [authors, setAuthors] = useState([]);

useEffect(async () => {
  let data = await getAuthors({current: 1, pageSize: 65535});
  if (!data.success) {
    return;
  }
  setAuthors(data.data.map(item => ({
    value: item.ID,
    label: item.Name,
  })));
}, []); // mount 和 unmount 时执行

Form 中插入 Select 组件

<Form.Item name="AuthorId" label="Author">
  <Select options={authors}
  allowClear
  showSearch
  optionFilterProp="label"
  filterOption={(input, option) =>
    option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0
  }
  >
  </Select>
</Form.Item>

参考

参考 antd select 组件的用户搜索示例。

我是一名山东烟台的开发者,联系作者