useEffect(() => { let isActive = true; //get user Data from session on start if loggedin. gameSessionService.get().then(allSessions=>{ if (isActive){ if(!allSessions.data.gameSessions) return; allSessions.data.gameSessions.forEach((x,i)=>{ sessionCards.push(<SessionCard key={i} nr={i} name={x.name} desc={x.description} id={x._id} owner={myUserData._id ===x.creator} />); }) setGameSessions(sessionCards) } }) return () => { isActive = false; } }, [myUserData])Estoy esperando una llamada asíncrona en un recurso http en mi enlace useEffect, y luego, a cambio, solo limpio la variable gameSession (que contiene un elemento DOM que se representa).
Pero sigo recibiendo este error:
index.js:1 Advertencia: no se puede realizar una actualización de estado de React en un componente desmontado. Esto no es operativo, pero indica una pérdida de memoria en su aplicación. Para solucionarlo, cancele todas las suscripciones y tareas asincrónicas en una función de limpieza useEffect. en SessionCard (https://localhost:3000/static/js/main.chunk.js:2931:89) en la sección en div en MorphCard (https://localhost:3000/static/js/main.chunk.js: 16875:46) en Cuenta (https://localhost:3000/static/js/main.chunk.js:2040:85)
¿Cómo limpio una llamada de función asíncrona de manera adecuada?