Tengo un formulario con 100 campos por ejemplo. Tengo dos formas de solucionarlo:
const [field, setField] = React.useState({ a:"", b:"", c:"", ... ... })y tratarlo así:
setField(prev => ({ ...prev, ...{b: 'Earth Worm Jim'} }))¿Cuál es la solución mejor/correcta?
Podría crear una función handleChangeInput como esta:
const handleChangeInput = (e) => { const { name, value } = e.target; setState((prevState) => ({ ...prevStatestate, [name]: value })); };Aquí es importante que el atributo de nombre de su jsx, sea el mismo que el estado, por lo que a, b o c...
Puede imitar setState con el gancho useReducer como a continuación
const [state, setState] = useReducer((oldState, newState) => ({ ...oldState, ...newState }, { image: '', file: null, username: '', email: '', });Creo que no hay problema al usar useState() pero si quieres puedes usar useReduer() https://www.youtube.com/watch?v=kK_Wqx3RnHk