Как получить событие, если для компонента React автозаполнения пользовательского интерфейса выбран какой-либо параметр? - PullRequest
0 голосов
/ 14 апреля 2020

У меня есть автозаполнение. Мне нужно перехватить, когда выбран вариант. Событие onChange, которое я связал, работает только тогда, когда выделение отличается от последнего. Я просто хочу знать, когда кто-то выбран, точка. Я могу придумать несколько стратегий для этого, ни одна из которых, кажется, не обеспечивается API автозаполнения.

  1. Просто перехватывайте событие всякий раз, когда что-то выбрано. Это не существует, о чем я знаю.
  2. Всегда устанавливайте опцию «текущий выбранный» в нуль, чтобы все было изменено. Это не существует, о чем я знаю.
  3. Возможно, некоторые настраиваемые параметры рендеринга, которые охватывают все логи взаимодействия c, которых я пытаюсь избежать с помощью элемента управления пользовательским интерфейсом Material ... это единственный кстати?
    <Autocomplete
        className={classes.textfield}
        id={entityId}
        freeSolo
        open={showSuggestions}
        onClose={handlePopoverClose}
        onChange={handleOptionSelected}
        options={options} 
        filterOptions={(options, state) => options}
        renderInput={(params) => (
          <TextField inputRef={textfieldRef} {...params} id={entityId} margin="normal" 
               onKeyPress={handleKeyPress} onInput={handleInputChanged} value={controlText}/>
        )}
      />

1 Ответ

0 голосов
/ 14 апреля 2020

Согласно документации материала , вы можете отфильтровать тип события onChange, обратившись ко второму необязательному параметру (reason).

Вот как вы можете проверить когда выбран любой из параметров:

const handleOptionSelected = (event, reason) => {
  if (reason === 'select-option') {
    // do the rest
  };
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...