You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
48 lines
1.2 KiB
48 lines
1.2 KiB
import { AutoComplete } from 'antd';
|
|
import React, { useState } from 'react';
|
|
|
|
const mockVal = (str: string, repeat = 1) => ({
|
|
value: str.repeat(repeat),
|
|
});
|
|
|
|
const App: React.FC = () => {
|
|
const [value, setValue] = useState('');
|
|
const [options, setOptions] = useState<{ value: string }[]>([]);
|
|
const [anotherOptions, setAnotherOptions] = useState<{ value: string }[]>([]);
|
|
|
|
const getPanelValue = (searchText: string) =>
|
|
!searchText ? [] : [mockVal(searchText), mockVal(searchText, 2), mockVal(searchText, 3)];
|
|
|
|
const onSelect = (data: string) => {
|
|
console.log('onSelect', data);
|
|
};
|
|
|
|
const onChange = (data: string) => {
|
|
setValue(data);
|
|
};
|
|
|
|
return (
|
|
<>
|
|
<AutoComplete
|
|
options={options}
|
|
style={{ width: 200 }}
|
|
onSelect={onSelect}
|
|
onSearch={(text) => setOptions(getPanelValue(text))}
|
|
placeholder="input here"
|
|
/>
|
|
<br />
|
|
<br />
|
|
<AutoComplete
|
|
value={value}
|
|
options={anotherOptions}
|
|
style={{ width: 200 }}
|
|
onSelect={onSelect}
|
|
onSearch={(text) => setAnotherOptions(getPanelValue(text))}
|
|
onChange={onChange}
|
|
placeholder="control mode"
|
|
/>
|
|
</>
|
|
);
|
|
};
|
|
|
|
export default App;
|
|
|