reactjs / reactjs/react.dev

Better way to uncontrolled components?

Abierto
#3,843 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Lenguaje dominante
JavaScript
Estrellas
11.8k
Forks
7.9k
Merge medio
1 d 11 h
PR fusionados (30 d)
11

Descripción

Hi, in the documentation for uncontrolled components it is shown that we could use ref to access the values in the form, it is not specified why we shouldn't use this approach instead:

const App = () => {
  const file = useRef()
  const submit = (e) => {
    e.preventDefault()
    const form = new FormData(e.target)
    form.append('archivo', file.current.files[0])
    console.log(Array.from(form))
    // even better:
    Object.fromEntries(Array.from(form))
  }

  return (
    <form onSubmit={submit}>
      <div>
        <span>lala</span>
        <input defaultValue='my value' type='text' name='field' />
        <input type='file' ref={file} />
      </div>
      <input type='submit' value='Enviar' />
    </form>
  )
}

I think it's way cleaner as we only have to focus one one potential value, an input of type file. Is there a reason to not use it?

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Línea de trabajo

Comienza con content/docs/uncontrolled-components.md, especialmente con la sección que describe refs y los valores de los formularios, y revisa el ejemplo enlazado. Aclara en la documentación si se debería usar el enfoque propuesto de FormData y file-ref y por qué; después, verifica que la página presente una recomendación clara para los formularios no controlados.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
javascript, react
Área
documentation
Tipo de issue
Documentación
Dificultad
2/5
Tiempo estimado
1-3 horas
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
35/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.