¿Cómo hago para reaccionar renderizarlo?
<input
id={field.name}
className="form-control"
type="text"
placeholder={field.name}
autocomplete="off"
{...field}/>
Respuestas:
Capital "C" autoComplete
. Esto se menciona en la documentación de React:
https://facebook.github.io/react/docs/tags-and-attributes.html
Deberías poner:
autoComplete="new-password"
Esto eliminará el autocompletado
new
dentro del nombre. Lo nombré ahora, lo autoComplete="new-off"
que tiene un poco más de sentido para mí si no es un campo de contraseña y funciona bien: D
De acuerdo con la documentación de Mozilla , debe establecer un valor no válido para realmente desactivar el autocompletado. En algunos navegadores, las sugerencias de autocompletar aún se ofrecen aunque el atributo esté desactivado.
Esto funcionó para mí (react-bootstrap):
<FormControl
value={this.state.value}
autoComplete="nope"
{...props}
/>
autocomplete
y autofill
? Porque no me funciona con Chrome. Sigue autocompletando el formulario con los valores anteriores enviados con el mismo formulario.
Si ha leído la respuesta correcta y todavía tiene este problema (especialmente en Chrome), bienvenido al club ... así que compruebe cómo lo he logrado:
<form autoComplete="new-password" ... >
<input name="myInput" type="text" autoComplete="off" id="myInput" placeholder="Search field" />
</form>
Notas
<FormControl/>
etiqueta React-Bootstrap (en lugar de <input/>
)autoComplete = "none" - funciona para mí.
Ninguna de estas soluciones funcionó realmente en Chrome 80.
Después de horas de prueba y error, este truco muy extraño funcionó para mí:
autoComplete="none"
a cada uno <input>
: Google omite autocomplete = "off" ahora<form>
o<div>
autoComplete="on"
. Este debería ser el último elemento del contenedor. Entonces agregué el siguiente campo de entrada al final de mi formulario:<input
type="text"
autoComplete="on"
value=""
style={{display: 'none', opacity: 0, position: 'absolute', left: '-100000px'}}
readOnly={true}
/>
El infierno de autocompletado de Chrome se apaga agregando el atributo de nueva contraseña.
autoComplete="new-password"
En acción se ve así:
<input
type="password"
autoComplete="new-password"
/>
más discusión sobre:
Lo resolví con solo una línea:
Si usa la forma recomendada con "changeHandler ()" y el estado de los componentes, simplemente inserte:
changeHandler = (e) => {
if (!e.isTrusted) return;
... your code
}
Más información sobre ese changeHandler () - Thing:
https://reactjs.org/docs/forms.html#controlled-components
También probé muchas opciones, pero lo que terminé haciendo fue reemplazar la <form>
etiqueta con la <div>
etiqueta y administrar manualmente cada entrada que tenía en ese formulario.
Aquí está el "Funciona en mi máquina"
Versión de Chrome 83.0.4103.116 y React. Parece que el truco que funcionó para mí es ponerlo dentro de un formulario y agregar el atributo autoComplete . Aviso Si prueba esto en una aplicación que no reacciona, tendrá que completar el autocompletado con una C minúscula
<form autoComplete="off">
<input type="text" autoComplete="new-password" />
</form>
y
<form autoComplete="new-password">
<input type="text" autoComplete="new-password" />
</form>