Estoy tratando de obtener el estado actual dentro de la función setInterval, que no funciona. Solo obtengo el valor predeterminado. Creo que tiene que ver algo con el useEffect que solo se carga en el montaje.
const [liveMouse, setLiveMouse] = useState({ currentX: 0, currentY: 0, lastX: 0, lastY: 0 }); useEffect(() => { let mounted = true; if (mounted) { document.addEventListener("mousemove", (event) => { setLiveMouse(previousMouse => ({...previousMouse, currentX: event.clientX, currentY: event.clientY })); }) const mouseCheckInterval = setInterval(() => { // Not getting the current state, only the default value if (liveMouse.currentX !== liveMouse.lastX || liveMouse.currentY !== liveMouse.lastY) { setLiveMouse(previousMouse => ({...previousMouse, lastX: liveMouse.currentX, lastY: liveMouse.currentY })) } }) return (() => { mounted = false; clearInterval(mouseCheckInterval) } }, [])