Ich möchte eine Autocomplete
Komponente für Eingabe-Tags verwenden. Ich versuche, die Tags abzurufen und in einem Status zu speichern, damit ich sie später in der Datenbank speichern kann. Ich benutze Funktionen anstelle von Klassen in reagieren. Ich habe es versucht onChange
, aber ich habe kein Ergebnis erzielt.
<div style={{ width: 500 }}>
<Autocomplete
multiple
options={autoComplete}
filterSelectedOptions
getOptionLabel={option => option.tags}
renderInput={params => (<TextField
className={classes.input}
{...params}
variant="outlined"
placeholder="Favorites"
margin="normal"
fullWidth />)} />
reactjs
material-ui
Buk Lau
quelle
quelle
Bist du sicher, dass du es
onChange
richtig benutzt hast ?onChange
Unterschrift :function(event: object, value: any) => void
quelle
@Dworo
Für alle, die Probleme mit der Anzeige eines ausgewählten Elements aus der Dropdown-Liste im Eingabefeld haben.
Ich habe eine Problemumgehung gefunden. Grundsätzlich muss man für beide und eine beschissene Material-Benutzeroberfläche ein
inputValue
at binden .onChage
Autocomplete
TextField
quelle
Wenn ich den obigen Code verwende, kann ich das Feld für die automatische Vervollständigung immer noch nicht dazu bringen, die ausgewählte Option anzuzeigen. Irgendwelche Ideen, Leute?
quelle
Ich musste bei jeder Eingabeänderung meine API drücken, um meine Tags vom Backend zu erhalten!
Verwenden Sie Material-ui onInputChange, wenn Sie Ihre vorgeschlagenen Tags bei jeder Eingabeänderung erhalten möchten!
quelle
Ich wollte meinen Status aktualisieren, wenn ich eine Option aus der automatischen Vervollständigung auswähle. Ich hatte einen globalen onChange-Handler, der alle Eingaben verwaltet
Dadurch wird das Objekt dynamisch basierend auf dem Namen des Felds aktualisiert. Bei der automatischen Vervollständigung wird der Name jedoch leer zurückgegeben. Also habe ich den Handler von
onChange
auf geändertonSelect
. Erstellen Sie dann entweder eine separate Funktion, um die Änderung zu behandeln, oder fügen Sie wie in meinem Fall eine if-Anweisung hinzu, um zu überprüfen, ob der Name nicht übergeben wird.Der obige Ansatz funktioniert, wenn Sie eine einzelne Autovervollständigung haben. Wenn Sie mehrere u haben, können Sie eine benutzerdefinierte Funktion wie unten übergeben
quelle