Автозаполнение компонента Реакция не работает для фильтра в списке выбора - PullRequest
1 голос
/ 06 января 2020

Я использую автозаполнение пользовательского интерфейса, чтобы отфильтровать список значений, я использовал событие onChange AutoComplete. Чтобы повлиять на значения, введенные вручную, я использовал событие onChange объекта TextFiled, находящегося в Автозаполнении.

Но это конфликтует с событием onChnage в Автозаполнении, и список не фильтруется. Может ли кто-нибудь направить меня, где я допустил ошибку?

Код такой, как показано ниже:

<Autocomplete
  freeSolo
  options={this.state.dimension.map(p => p)}
  renderInput={params => (
    <TextField
      {...params}
      margin="normal"
      variant="outlined"
      fullWidth
      autoComplete="off"
      required
      onChange={this.handleDimensionChangeManual}
    />
  )}
  onChange={this.handleDimensionChange}
  value={this.state.dimemsionValue}
/>

Обе функции следующие:

handleDimensionChangeManual (event) {
  let newState = Object.assign({}, this.state);

  if (event.target.value && newState.dimemsionValue != event.target.value) {
    newState.dimemsionValue = event.target.value;
    if (
      newState.dimension.includes(newState.dimemsionValue) === false &&
      newState.dimemsionValue.length > 0
    ) {
      newState.remark =
        "Size might be non-standard and may have effect on price";
    } else {
      newState.remark = "";
    }
    newState.disableSubmit = true;
    newState.itemid = "";
    newState.cmtExistingItemRemark = "";
    newState.orderCode = "";
    this.setState(newState);
  }
};

handleDimensionChange (event, values) {
  let newState = Object.assign({}, this.state);

  if (values && newState.dimemsionValue != values) {
    newState.dimemsionValue = values;
    if (
      newState.dimension.includes(newState.dimemsionValue) === false &&
      newState.dimemsionValue.length > 0
    ) {
      newState.remark =
        "Size might be non-standard and may have effect on price";
    } else {
      newState.remark = "";
    }
    newState.disableSubmit = true;
    newState.itemid = "";
    newState.cmtExistingItemRemark = "";
    newState.orderCode = "";
    this.setState(newState);
  }
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...