Я работаю над раскрывающимся списком семантического пользовательского интерфейса и хочу передать значение и текст выбранных параметров создателю действия.
Разметка для раскрывающегося списка:
<Dropdown
placeholder='Campaign Exposed To'
fluid
search
selection
multiple
options={this.state.campaigns}
onChange={this.exposedCampaignOnChange}
/>
Обработчик onChange выглядит следующим образом:
exposedCampaignOnChange = (e, {value}) => {
e.persist(); // access event properties in asynchronously
const text = e.target.textContent;
const currentValue = value[value.length-1];
// manipulate value array to include text too
value[value.length - 1] = {text: text, value: currentValue};
this.props.campaignExposedSelected(value);
};
Это преобразует массив значений в коллекцию объектов в следующем формате: {text: test 1, value: 4353234}
, что мне нужно .
Однако, поскольку я изменил значение с массива чисел на массив объектов , выпадающий список показывает ошибочное поведение - он не отображает выбранные параметры вполе.
В качестве альтернативы, чтобы избежать манипулирования массивом значений, я подумал о добавлении текста опции к его свойству значения, например, 3442332___text
(поэтому в раскрывающихся опциях будет предоставлен массив значений в этом формате).Далее я буду анализировать любую информацию, которая мне нужна.Я чувствовал, что это не очень элегантно, поэтому не стал его использовать.
Благодарим вас за помощь в том, как изменить массив значений Sementic UI Dropdown, не нарушая его.