Есть ли что-нибудь вроде Material-UI Autocomplete freeSolo в React-Admin AutocompleteInput - PullRequest
1 голос
/ 04 ноября 2019

Я использую React-Admin, и я знаю, что React-Admin использует Material-UI, но я не смог найти что-то вроде Material-UI Autocomplete freeSolo . На самом деле, я за видом AutocompleteInput, который не заставляет меня выбирать элемент. freeSolo работает так.

Я просто хотел убедиться, что если этого не существует в React-Admin, то я создаю новый элемент.

В настоящее время я знаю, что могу определитьAutocompleteInput с моими пользовательскими вариантами, такими как:

const choices = [
  { id: 123, first_name: 'Leo', last_name: 'Tolstoi' },
  { id: 456, first_name: 'Jane', last_name: 'Austen' },
];
const optionRenderer = choice => `${choice.first_name} ${choice.last_name}`;
<AutocompleteInput choices={choices} optionText={optionRenderer} />

Но из-за слишком большого количества вариантов мне приходится получать данные из моего веб-сервиса RESTful. Это также не позволяет мне помещать свой пользовательский текст (текст, которого нет в списке) внутри текстового ввода. Я имею в виду, что после исчезновения предложений автозаполнения текстовый ввод очищается.

Я пытался использовать:

import Autocomplete from '@material-ui/lab/Autocomplete';

, но автозаполнения там не было. @material-ui/lab включает только AutocompleteArrayInput и AutocompleteInput. Я также установил @material-ui/core, но он не позволяет мне использовать это.

Ответы [ 2 ]

0 голосов
/ 04 ноября 2019

AutoComplete не является частью @material-ui/core, он находится в @material-ui/lab, его необходимо установить.

Вам также необходимо убедиться, что у вас установлена ​​соответствующая версия @material-ui/lab

Это решение зависит от того, какой менеджер пакетов вы используете для установки.

Есливы используете пряжу: вы можете обновить ее до последней версии пакета (там будут некоторые критические изменения)

yarn upgrade @material-ui/lab --latest

Если вы используете npm:

npm install @material-ui/lab@latest

Убедитесь, чтовы понимаете, как использовать lab, в какой-то момент эта функция переместится в ядро, и вам нужно будет подстроиться под нее. Возможно, вам придется использовать флаги latest, чтобы заставить менеджер пакетов обновлять и игнорировать критические изменения.

0 голосов
/ 04 ноября 2019

вы не можете сделать это с AutocompleteInput, потому что это компонент, ограниченный фильтрацией.

Следуя документации :

Совет: AutocompleteInput является компонентом без состояния, так что только позволяет фильтровать список вариантов, а не расширять его . Если вам нужно заполнить список вариантов на основе результата вызова выборки (и если он не соответствует вашим потребностям), вам придется написать собственный компонент Input на основе компонента material-ui.

...