Wie kann ich reagieren lassen, um es zu rendern?
<input
id={field.name}
className="form-control"
type="text"
placeholder={field.name}
autocomplete="off"
{...field}/>
Antworten:
Großbuchstabe "C" autoComplete. Dies wird in der React-Dokumentation erwähnt:
https://facebook.github.io/react/docs/tags-and-attributes.html
Sie sollten setzen:
autoComplete="new-password"
Dadurch wird die automatische Vervollständigung entfernt
newim Namen. Ich habe es jetzt benannt autoComplete="new-off", was für mich etwas sinnvoller ist, wenn es kein Passwortfeld ist und es gut funktioniert: D
Laut Mozilla-Dokumentation müssen Sie einen ungültigen Wert festlegen, um die automatische Vervollständigung wirklich auszuschalten. In einigen Browsern werden weiterhin Vorschläge zur automatischen Vervollständigung gegeben, obwohl das Attribut deaktiviert ist.
Das hat bei mir funktioniert (React-Bootstrap):
<FormControl
value={this.state.value}
autoComplete="nope"
{...props}
/>
autocompleteund autofill? Weil es bei mir mit Chrome nicht funktioniert. Das Formular wird weiterhin automatisch mit vorherigen Werten ausgefüllt, die mit demselben Formular gesendet wurden.
Wenn Sie die richtige Antwort gelesen haben und dieses Problem weiterhin haben (insbesondere in Chrome), heißen wir Sie im Club willkommen. Überprüfen Sie also, wie ich es erreicht habe:
<form autoComplete="new-password" ... >
<input name="myInput" type="text" autoComplete="off" id="myInput" placeholder="Search field" />
</form>
Anmerkungen
<FormControl/>Tag (anstelle von <input/>)autoComplete = "none" - funktioniert bei mir.
Keine dieser Lösungen funktionierte wirklich auf Chrome 80.
Nach stundenlangem Ausprobieren hat dieser sehr seltsame Hack für mich funktioniert:
autoComplete="none"die jedem <input>- Google überspringt die automatische Vervollständigung = „off“ jetzt<form>oder<div> autoComplete="on". Dies sollte das letzte Element im Container sein. Deshalb habe ich das folgende Eingabefeld am Ende meines Formulars hinzugefügt:<input
type="text"
autoComplete="on"
value=""
style={{display: 'none', opacity: 0, position: 'absolute', left: '-100000px'}}
readOnly={true}
/>
Die Hölle der automatischen Vervollständigung von Chrome wird durch Hinzufügen eines neuen Kennwortattributs deaktiviert.
autoComplete="new-password"
In Aktion sieht es so aus:
<input
type="password"
autoComplete="new-password"
/>
Weitere Diskussion über:
Ich habe es mit nur einer Zeile gelöst:
Wenn Sie die empfohlene Methode mit "changeHandler ()" und dem Komponentenstatus verwenden, fügen Sie einfach Folgendes ein:
changeHandler = (e) => {
if (!e.isTrusted) return;
... your code
}
Weitere Informationen zu dieser ÄnderungHandler () - Sache:
https://reactjs.org/docs/forms.html#controlled-components
Ich habe auch viele Optionen ausprobiert, aber am Ende habe ich das <form>Tag durch ein <div>Tag ersetzt und jede Eingabe, die ich in diesem Formular hatte, manuell verwaltet.
Hier ist das "Es funktioniert auf meinem Computer"
Chrome Version 83.0.4103.116 und Reagieren. Der Trick, der bei mir funktioniert hat, besteht darin, ihn in ein Formular einzufügen und das Attribut autoComplete hinzuzufügen . Hinweis Wenn Sie dies in einer nicht reagierenden App versuchen, müssen Sie die automatische Vervollständigung mit einem Kleinbuchstaben C durchführen
<form autoComplete="off">
<input type="text" autoComplete="new-password" />
</form>
und
<form autoComplete="new-password">
<input type="text" autoComplete="new-password" />
</form>