Я использую компонент автокомплектующих материалов (v0.15.4) для реализации вида фильтра. Чтобы улучшить работу с пользователем, я хочу добавить кнопку очистки (компонент Icon Button?) Внутри или рядом с ней, которая просто очищает текущий вход (например, на снимках Google Specification for Auto-complete text fields).Как добавить кнопку очистки в поле автозаполнения в материале-ui
Поскольку AutoComplete использует TextField, я думал о том, чтобы предоставить ListItem или MenuItem значение «значение» TextField и использовать rightIcon (Button). Но AutoComplete позволяет только String как «SearchText» (используется внутренняя функция, чтобы заполнить поле «значение» TextField).
Так, так как я не могу поставить другой компонент внутри «SearchText» Я заканчиваю с идеей обертывания автозаполнения внутри ListItem, как это:
<ListItem
primaryText={<AutoComplete
dataSource={ dataSource }
filter={AutoComplete.fuzzyFilter}
hintText="Select Filter"
onNewRequest={this.handleSelect.bind(this)} />}
rightIconButton={<IconButton
onClick={this.handleClearClick.bind(this)}>
<ClearIcon />
</IconButton>}
/>
Но этот путь появляется ясно значок позади авто полное поле ввода, и мне действительно не нужен/нужен список (элемент).
Есть ли другая идея решения этой проблемы? Или, может быть, явная функция (или более общее поле «rightIconButton»), запланированное для будущей версии Material-UI?
Привет, Пранеш, спасибо за предложение. Я пробовал это раньше, и он работает, но только если пользователь действительно что-то вводит в поле. Но когда я также устанавливаю openOnFocus = {true} (я, кажется, забыл об этом выше), и пользователь нажимает на запись из списка (без ввода какой-либо буквы), onUpdateInput не запускается, и поэтому состояние не изменяется, что вызывает кнопку не работать, потому что он также не меняет состояние. – mlemler
У меня была такая же проблема. Не удалось очистить поле. Он работал по решению, которое вы предоставили. Благодаря! Несколько часов я оттягивал волосы. –