Quiero construir un mecanismo de getInitialProps basado en getInitialProps en Next.js. Cada vez que cambiamos el filtro del calendario, llamamos a loadCalendar con una query actualizada: params y setLoading(true) . En router.push , se llama a getInitialProps y obtiene datos en función de la query actualizada. Debido a que devolvemos la loading en getInitialProps , useEffect debería activar y actualizar el estado loading . Pero por alguna razón esto no sucede porque useEffect no se activa.
¿Alguna idea de por qué sucede esto? ¿Existe un mejor enfoque para manejar el estado de carga?
function Calendar(props) { const router = useRouter(); const [loading, setLoading] = useState(false); useEffect(() => { setLoading(false); }, [props.loading]); function loadCalendar(query) { setLoading(true); router.push({ query }); } ... } Calendar.getInitialProps = ({ store, query }) => { await store.dispatch(fetchCalendar(query)); const loading = new Date().getTime(); return { loading }; }