Quizás entendí mal el flujo de reacción, pero ¿alguien puede explicar esta magia :)

¿Por qué tengo que actualizar el estado interno a través del gancho useEffect en React?

Pensé que la actualización del componente desencadenará la reescritura del estado inicial del gancho useState.

  const [list, setList] = useState<TabItem[]>(tabs);

  useEffect(() => {
    setList(tabs);
  }, [tabs]);

1
Vladislav Lukyanuk 15 mar. 2021 a las 09:25

1 respuesta

La mejor respuesta

El caso es que cuando React vuelve a renderizar el componente funcional, el gancho de estado React.useState(tabs) no se ejecuta de nuevo.

Es por eso que el estado anterior persiste durante el siguiente ciclo de renderizado.

Entonces, para que sus accesorios se deriven en su estado interno, puede proporcionar los tabs accesorios dentro de un gancho React.useEffect() para que la devolución de llamada useEffect se ejecute nuevamente y establezca el estado nuevamente con {{X2} }.

1
Kevin Moe Myint Myat 15 mar. 2021 a las 06:50