const [value, set_value] = useState({a: 1}); <Child value={value} onChange={callback} </Child> set_value({a: 2}) Cuando se set_value({a: 2}) , ¿activará eso la callback de llamada dentro de onChange para que se ejecute?
Creo que la respuesta más exacta a la pregunta es:
"Eso depende del componente <Child> ".
Desde el punto de vista de Reacts value y onChange son solo dos propiedades de <Child> , entonces:
No, cambiar una propiedad ( value ) no necesariamente provoca que se llamen devoluciones de llamada ( onChange ).
Pero es común en React tener los llamados "componentes controlados" , donde el estado (es decir, el valor) se mantiene dentro del padre, y el hijo no tiene ningún estado propio, pero recibirá el valor del padre, y solo informa a los padres sobre los cambios.
En su ejemplo, el componente principal mantiene el estado:
const [value, set_value] = useState({a: 1});Y el niño solo puede recibir el valor y llamar a la devolución de llamada si los cambios son necesarios (pero no mantiene ningún estado propio), por ejemplo:
const Child = function( props ){ return <button onClick={ function(){ props.onChange( props.value.a + 1 ); }}> { props.value.a } </button> };