En el uso a continuación para el gancho useEffect , estoy detectando el ancho de la ventana, luego, si la ventana tiene cierto ancho, la función establece el estado, pero ¿necesitaría limpiar el useEffect en este caso o no necesitaría limpieza? Sé que, en el contexto de una API, podría darse de baja de la API en la devolución, por lo que la devolución se ejecutará cuando el componente se desmonte.
¿Es correcto volver a configurar el ancho de la windowWidth o es mejor eliminar totalmente el retorno del gancho useEffect ?
const [windowWidth, setWindowWidth] = React.useState<number>(0); const [column, setColumn] = React.useState<number>(10); const calcWindow = React.useCallback(() => { if (windowWidth < 768) { setColumn(() => 5); } else { setColumn(() => 10); } }, [windowWidth]); React.useEffect(() => { setWindowWidth(window.innerWidth); calcWindow(); return () => { setWindowWidth(window.innerWidth); // is this needed or is this correct? }; }, [calcWindow, windowWidth]);La función devuelta aquí es innecesaria. Cuando el componente está a punto de desmontarse, no debe configurar el estado, ya que ese estado desaparecerá. Durante una nueva representación, la función de limpieza se ejecutará y establecerá el ancho de la ventana, pero el valor se anulará en el efecto inmediatamente desde setWindowWidth(window.innerWidth); llamar.