Identifica y explica errores en el código
Ejemplo:
Error: Cannot read property "map" of undefined → Lupe detecta que estás intentando usar .map() en un array que es undefined y sugiere verificar la inicialización
Propone soluciones específicas para cada error
Ejemplo:
Memory leak detectado → Lupe sugiere limpiar el efecto con una función de cleanup en useEffect
Anticipa posibles problemas antes de que ocurran
Ejemplo:
Lupe detecta un posible race condition en una llamada API y sugiere implementar un token de cancelación
Identifica y resuelve problemas de rendimiento
Ejemplo:
Detecta re-renders innecesarios y sugiere el uso de useMemo o useCallback en componentes específicos
Ejemplo de depuración en un componente React
Problema:
El componente se re-renderiza infinitamente
Código con error:
useEffect(() => {
setCount(count + 1)
}, [count])
Código corregido:
useEffect(() => {
// Usar setCount con callback para evitar dependencia
setCount(prevCount => prevCount + 1)
}, []) // [] evita re-renders infinitos
Explicación:
El efecto depende de count y modifica count, creando un loop infinito. La solución usa un callback en setState y elimina la dependencia.
Depuración de código asíncrono
Problema:
Error no manejado en una promesa
Código con error:
async function fetchUser() {
const response = await fetch('/api/user')
const data = await response.json()
return data
}
Código corregido:
async function fetchUser() {
try {
const response = await fetch('/api/user')
if (!response.ok) {
throw new Error(`HTTP error! status: ${response.status}`)
}
const data = await response.json()
return data
} catch (error) {
console.error('Error fetching user:', error)
throw error
}
}
Explicación:
El código original no maneja errores de red ni verifica el status de la respuesta. La versión corregida incluye manejo de errores completo.
Al reportar un error, incluye el contexto completo y los pasos para reproducirlo.
Coloca logs en puntos clave para rastrear el flujo de datos y el estado de la aplicación.
Siempre incluye try-catch en operaciones que puedan fallar y maneja los errores apropiadamente.
Para mejorar tus habilidades de depuración: