ant-design/components/auto-complete/demo/uncertain-category.md

83 lines
2.0 KiB
Markdown
Raw Normal View History

---
order: 5
title:
zh-CN: 查询模式 - 不确定类目
en-US: Lookup-Patterns - Uncertain Category
---
## zh-CN
[查询模式: 不确定类目](https://ant.design/docs/spec/reaction#Lookup-Patterns) 示例。
## en-US
Demonstration of [Lookup Patterns: Uncertain Category](https://ant.design/docs/spec/reaction#Lookup-Patterns).
2020-01-21 16:21:37 +08:00
```tsx
import React, { useState, FC } from 'react';
import { Input, AutoComplete } from 'antd';
2020-01-21 16:21:37 +08:00
import { SelectProps } from 'antd/es/select';
2018-06-27 15:55:04 +08:00
2020-01-21 16:21:37 +08:00
function getRandomInt(max: number, min: number = 0) {
2017-02-13 10:55:53 +08:00
return Math.floor(Math.random() * (max - min + 1)) + min; // eslint-disable-line no-mixed-operators
}
2020-01-21 16:21:37 +08:00
const searchResult = (query: string) => {
2019-05-07 14:57:32 +08:00
return new Array(getRandomInt(5))
.join('.')
.split('.')
.map((item, idx) => {
const category = `${query}${idx}`;
return {
value: category,
label: (
<div
style={{
display: 'flex',
justifyContent: 'space-between',
}}
>
<span>
Found {query} on{' '}
<a
href={`https://s.taobao.com/search?q=${query}`}
target="_blank"
rel="noopener noreferrer"
>
{category}
</a>
</span>
<span>{getRandomInt(200, 100)} results</span>
</div>
),
};
});
2020-01-21 16:21:37 +08:00
};
2020-01-21 16:21:37 +08:00
const Complete: FC = () => {
const [options, setOptions] = useState<SelectProps<object>['options']>([]);
const handleSearch = (value: string) => {
setOptions(value ? searchResult(value) : []);
2019-05-07 14:57:32 +08:00
};
2020-01-21 16:21:37 +08:00
const onSelect = (value: string) => {
console.log('onSelect', value);
2019-05-07 14:57:32 +08:00
};
2020-01-21 16:21:37 +08:00
return (
<AutoComplete
dropdownMatchSelectWidth={252}
style={{ width: 300 }}
options={options}
onSelect={onSelect}
onSearch={handleSearch}
>
<Input.Search size="large" placeholder="input here" enterButton />
</AutoComplete>
);
};
ReactDOM.render(<Complete />, mountNode);
2019-05-07 14:57:32 +08:00
```