Imagina un conversor de temperatura. Tienes un input para Celsius y otro para Fahrenheit. Cuando escribes en uno, el otro debe actualizarse automáticamente.
Si cada input tiene su propio estado, ¿cómo se enteraría uno del cambio del otro? Las props solo fluyen hacia abajo (del padre al hijo), no de hermano a hermano.
El truco es simple: mueve el estado al ancestro común más cercano. En vez de que cada hijo tenga su propio estado, el padre lo tiene y se lo pasa a ambos hijos como props.
Cuando el hijo llama a onTemperatureChange, está ejecutando la función del padre → el padre actualiza su estado → re-renderiza → ambos hijos reciben las props nuevas.
onChange llama a onTemperatureChange("100") → función del padresetTemperature("100") y setScale("celsius")El input de Celsius muestra "100", el de Fahrenheit muestra "212". Todo sincronizado.
DisplayCount lee el dato, Controls lo modifica, y App lo orquesta todo. Los hijos no se conocen entre sí — solo se comunican a través del padre.
Completa el conversor de temperatura:
App.js, crea estados para la temperatura y la escala<TemperatureInput /> dos veces, pasando las props necesariasEl componente TemperatureInput.js ya está creado. Tu trabajo es orquestarlo desde App.
State lifting es uno de los patrones más fundamentales de React. Es la respuesta a "¿cómo comparto datos entre componentes?" en la mayoría de los casos.