1. 引入组件
import { Select, Spin } from 'antd';
import debounce from 'lodash/debounce';
const { Option } = Select;
2. 配置Select 选择器
一些属性就不在这一一介绍了,关键的属性在旁边写好了注释,是必须要加上的。想了解更多属性的,可以自行在官网查询. antd已经给我们封装好了加载状态的组件:<Spin /> .然后通过state控制其出现和消失.
<Select
showSearch
placeholder="请输入"
filterOption={false}
optionFilterProp="label"
defaultActiveFirstOption={false}
notFoundContent={spinState ? <Spin size="small"/> : null}
onSearch={this.handleSearch}
onSelect={this.handleSelect}
style={{
width: '60%',
}}>
{
dataList.map((item, index) => (
<Option key={item.id} value={item.id}>{item.name}</Option>
))
}
</Select>
3. 相关实现函数
handleSelect = (value)=>{
console.log(value);
...
}
handleSearch = (value) => {
...
this.setState({
dataList: [],
spinState: true
})
axios('http://xxx.com/xxx', {
value,
}).then(data){
this.setState({
dataList: data,
spinState: false
})
}
...
}
|