“Adicionando debounce na interface do usuário do material de preenchimento automático” Respostas de código

Adicionando debounce na interface do usuário do material de preenchimento automático

import React, { useCallback, useEffect, useState } from "react";
import Autocomplete from '@mui/lab/Autocomplete';
import TextField from '@mui/material/TextField';
import debounce from "lodash/debounce";
import { getOptionsAsync } from "./options";

function App() {
  const [options, setOptions] = useState([]);
  const [inputValue, setInputValue] = React.useState("");
  const getOptionsDelayed = useCallback(
    debounce((text, callback) => {
      setOptions([]);
      getOptionsAsync(text).then(callback);
    }, 200),
    []
  );

  useEffect(() => {
    getOptionsDelayed(inputValue, (filteredOptions) => {
      setOptions(filteredOptions);
    });
  }, [inputValue, getOptionsDelayed]);

  return (
    <Autocomplete
      options={options}
      getOptionLabel={(option) => option.title}
      filterOptions={(x) => x} // disable filtering on client
      loading={options.length === 0}
      onInputChange={(e, newInputValue) => setInputValue(newInputValue)}
      renderInput={(params) => <TextField {...params} label="Combo box" />}
    />
  );
}
Mystic Dev

Adicionando debounce na interface do usuário do material de preenchimento automático

import _ from 'lodash';

...

doSearch(text) {
   // Your normal handler here
}

...

// Delay autocomplete until 500 ms after use stops typing
<AutoComplete
  onUpdateInput={_.debounce((value) => doSearch(value), 500)}
  ...
/>
Mystic Dev

Respostas semelhantes a “Adicionando debounce na interface do usuário do material de preenchimento automático”

Perguntas semelhantes a “Adicionando debounce na interface do usuário do material de preenchimento automático”

Mais respostas relacionadas para “Adicionando debounce na interface do usuário do material de preenchimento automático” em JavaScript

Procure respostas de código populares por idioma

Procurar outros idiomas de código