React Dropdown не фильтрует по меткам - PullRequest
0 голосов
/ 08 апреля 2020

У меня проблемы с поиском решения для моего проекта React, использующего primereact. Я пытаюсь выполнить поиск / фильтр по раскрывающимся значениям.

import React, { useState, useEffect } from 'react';
import { InputText } from 'primereact/inputtext';
import {Dropdown} from 'primereact/dropdown';
....

const Editor = (props) => {

....

const [keyItems, setKeyItems] = useState();

useEffect(() => {
        loadData();
    }, []);

const loadData = () => {
        getAllTheKeysFromBackend()
            .then(res => {
                setKeyItems(res);
            });
}           

return (
.....

<Dropdown 
    value={parentobject.key+''} 
    options={keyItems} 
    itemTemplate={selectTemplate} 
    onChange={e => changeKeyValue(e, 'key')} 
    filter={true} 
    filterBy="name" 
/>

....
)
}
export default Editor

Функция getAllTheKeysFromBackend получает список объектов KeyDTO, который определяется следующим образом:

public class keyDTO {

    private String name;
    private String value;
    private String label;


    // getters and setters
    }

Элементы раскрывающихся списков в пользовательском интерфейсе отображаются следующие данные:

enter image description here

У меня есть 2 вопроса:

1 - я хочу иметь возможность искать в этот список по «имени» (описание справа), а не только по «значению» (идентификационный номер). Я пытался использовать filterBy, но это не сработало. как я могу это сделать?

2 - как я могу поймать сработавшее событие, когда пользователь начинает вводить что-то в текстовое поле фильтра?

Большое спасибо

...