Мне нужна помощь в очистке заполнителя автозаполнения после того, как пользователь выбирает из раскрывающегося списка, или лучше отображать часть метки, а не значение. В настоящее время он показывает значение. Поскольку Value оказывается уникальным идентификатором, мы не хотим, чтобы его видел конечный пользователь. Это URL-адрес образца, за которым я следую https://ant.design/components/auto-complete/
Вот мой код
import React, { useState } from "react";
import { Input, AutoComplete } from "antd";
import { SelectProps } from "antd/es/select";
const SearchBar: React.FC<> = () => {
const [options, setOptions] = useState<SelectProps<unknown>["options"]>([]);
const handleSearch = async (value: string) => {
setOptions(
value ? await searchResults() : []
);
};
const onSelect = (value: string) => {
console.log (value)
};
return (
<AutoComplete
dropdownMatchSelectWidth={300}
style={{ width: 350 }}
options={options}
onSelect={onSelect}
onSearch={handleSearch}
>
<Input.Search
size="large"
placeholder="Search By name"
enterButton
/>
</AutoComplete>
);
};
export default SearchBar;
Объект, который возвращается из searchResults, находится в этой форме. {value: string, label: JSX.Element}
И вот так формируется результат
const searchResults = async () => {
return {
value: id,
label: DisplayElement (query, Title, info),
};
}
const DisplayElement = (query: string, Title: string, info: string) => {
return (
<>
<div
style={{
display: "flex",
justifyContent: "space-between",
}}
>
<span>
<a>{Title}</a>
</span>
</div>
<div
style={{
display: "flex",
justifyContent: "space-between",
}}
>
<span>{info}</span>
</div>
</>
);
};
После того, как пользователь выбирает из раскрывающегося списка, он покидает строку поиска вот так. Это ценность. Я хотел бы либо очистить его, либо показать только подстроку метки, желательно Заголовок метки в этой строке {Заголовок}.
![enter image description here](https://i.stack.imgur.com/e9all.png)
-------------- Update 1-------------
This is the error I am getting on
(JSX attribute) onSelect?: ((value: string, option: OptionData | OptionGroupData) => void) | undefined
Type '(value: string, options: { key: any;}) => void' is not assignable to type '(value: string, option: OptionData | OptionGroupData) => void'.
Types of parameters 'options' and 'option' are incompatible.
Type 'OptionData | OptionGroupData' is not assignable to type '{ key: any; }'.
Type 'OptionData' is not assignable to type '{ key: any; }'.
Property 'key' is optional in type 'OptionData' but required in type '{ key: any; }'.ts(2322)
generate.d.ts(80, 5): The expected type comes from property 'onSelect' which is declared here on type 'IntrinsicAttributes & AutoCompleteProps & RefAttributes
const onSelect = (value: string, options: { key: any }) => {
console.log(options.key);
console.log(value);
props.parentCallback(options.key);
};
return (
Posting screenshot of the error.
![enter image description here](https://i.stack.imgur.com/L4Bjq.png)
------Update 2
![enter image description here](https://i.stack.imgur.com/tEpCC.png)
введите описание изображения здесь