getFieldsValue(true) allows for direct mutation of the form store
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 45/100
- Tipo de issue
- Error
- Claridad
- Bien especificado
- Estado de actividad
- Estancado
- Stack tecnológico
- react, typescript
- Área
- frontend
Línea de trabajo
Comienza en src/useForm.ts alrededor de las líneas 271-273 y reproduce el problema con getFieldsValue(true) y la eliminación de un campo. Confirma que el valor devuelto comparte estado mutable con el almacén del formulario; se considera completado cuando eliminar un campo del objeto devuelto ya no cambia el resultado de un getFieldsValue(true) posterior, mientras se mantiene el comportamiento existente para NamePaths específicos.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Repro:
Set up any basic form, and give a field an onChange like this:
() => {
const formData = form.getFieldsValue(true)
delete formData.nameOfField
console.log(form.getFieldsValue(true))
}
Normally, one would expect that this should have no effect, as react/state context should be immutable, but in this case you will find that it will log an object missing the deleting field.
The problem comes from the implementation of getFieldsValue here:
https://github.com/react-component/field-form/blob/d7892873e9eee6e4c618d4289fcdbc9ee240f68f/src/useForm.ts#L271-L273
Which just returns the store object directly.
This should be following React conventions and returning a clone, as it does when a specific list of NamePaths is requested.
- Lenguaje dominante
- TypeScript
- Estrellas
- 1k
- Forks
- 287
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de react-component/field-form
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
react-component/field-form#768 · 5 comentarios ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 25/100
react-component/field-form#751 ·
-
Add getFieldsWarning APIAbierto
Dificultad 3/5 1-2 días Aptitud para principiantes 42/100
react-component/field-form#749 ·
-
useWatch支持dynamic pathAbierto
Dificultad 3/5 1-2 días Aptitud para principiantes 35/100
react-component/field-form#746 ·
-
Dificultad 3/5 1-2 días Aptitud para principiantes 35/100
react-component/field-form#733 · 1 comentario ·
Todos los issues de react-component/field-form
Issues similares
-
status: needs-triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 83/100
a2ui-project/a2ui#3158 ·
Los mantenedores suelen responder en 2 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
hemilabs/ui-monorepo#2475 ·
Los mantenedores suelen responder en 1 día
-
community first-timers-only good first issue hacktoberfest help wanted low hanging fruit up-for-grabs
Dificultad 1/5 Menos de una hora Aptitud para principiantes 82/100
lingdojo/kana-dojo#32279 · 1 comentario · 5 reacciones ·
Los mantenedores suelen responder en 1 día
-
code-quality refactoring
Dificultad 2/5 1-3 horas Aptitud para principiantes 77/100
github/gh-aw-firewall#9879 ·
Los mantenedores suelen responder en 1 día
-
[Bug]: Arrow-key cursor movement in combined diff view doesn't scroll to keep the cursor visibleAbiertoos:macos
Dificultad 2/5 1-3 horas Aptitud para principiantes 64/100
Los mantenedores suelen responder en 1 día