Soy desarrollador frontend en Corea.
Hay un problema en el que estoy pensando estos días.
Las preguntas son las siguientes:
Me pregunto si es correcto pasar la función setState directamente del padre al hijo. Para una fácil explicación, adjuntaré un ejemplo.
// Example 1 const Parent = () => { const [count, setCount] = useState(0); return <Children setCount={setCount} count={count}/> } const Children = ({count, setCount}) => { return <div onClick={()=> setCount(prev => prev + 1}>{count}</div> } // Example 2 const Parent = () => { const [count, setCount] = useState(0); const handleCount = () => setCount(prev => prev + 1); return <Children handleCount={handleCount} count={count}/> } const Children = ({count, handleCount}) => { return <div onClick={handleCount}>{count}</div> }El ejemplo 1 es entregar la función setCount que administra el conteo de los accesorios al niño y llamar a la función setCount desde el niño.
En el Ejemplo 2, si entrega la función handleCount que cambia el estado de la cuenta a los accesorios al niño, el niño está llamando a la función handleCount.
Como resultado, no creo que sea bueno entregar la función setState directamente al niño (Ejemplo 1). La razón por la que lo creo es que los padres deberían tener derecho a acceder directamente al conteo, y el niño simplemente debería "llamar a la función handleCount para cambiar el estado del conteo" al padre. Además, mientras buscaba los datos, vi la opinión de que la relación entre los componentes principales y secundarios no se independiza si setState se entrega al elemento secundario como accesorios.