useDebugValue
useDebugValue
es un Hook de React que te permite añadir una etiqueta a un Hook personalizado en las herramientas de desarrollo de React.
useDebugValue(value, format?)
Uso
Añadir una etiqueta a un Hook personalizado
Llama a useDebugValue
en el primer nivel de tu Hook personalizado para mostrar un valor de depuración legible para las herramientas de desarrollo de React.
import { useDebugValue } from 'react';
function useOnlineStatus() {
// ...
useDebugValue(isOnline ? 'Online' : 'Offline');
// ...
}
Esto le da a los componentes que llamen a useOnlineStatus
una etiqueta como OnlineStatus: "Online"
cuando lo inspeccionas:
Sin la llamada a useDebugValue
, solo se mostrarán los datos subyacentes (en este ejemplo, true
).
import { useSyncExternalStore, useDebugValue } from 'react'; export function useOnlineStatus() { const isOnline = useSyncExternalStore(subscribe, () => navigator.onLine, () => true); useDebugValue(isOnline ? 'Online' : 'Offline'); return isOnline; } function subscribe(callback) { window.addEventListener('online', callback); window.addEventListener('offline', callback); return () => { window.removeEventListener('online', callback); window.removeEventListener('offline', callback); }; }
Aplazar el formateo de un valor de depuración
Puedes también pasar una función de formateo como segundo argumento para useDebugValue
:
useDebugValue(date, date => date.toDateString());
Tu función de formateo recibirá el valor de depuración como parámetro y debe retornar un valor de visualización formateado. Cuando tu componente es inspeccionado, las herramientas de desarrollo de React llamarán a la función de formateo y mostrarán el resultado.
Esto permite evitar ejecutar una lógica de formateo potencialmente costosa a no ser que el componente esté siendo inspeccionado. Por ejemplo, si date
es un valor de fecha, evita llamar a toDateString()
para cada renderizado del componente.
Referencia
useDebugValue(value, format?)
Llama a useDebugValue
en el primer nivel de tu Hook personalizado para mostrar un valor de depuración legible:
import { useDebugValue } from 'react';
function useOnlineStatus() {
// ...
useDebugValue(isOnline ? 'Online' : 'Offline');
// ...
}
Parámetros
value
: El valor que quieres mostrar en las herramientas de desarrollo de React. Puede tener cualquier tipo.format
opcional: Una función de formateo. Cuando se inspecciona el componente, las herramientas de desarrollo de React llamarán a la función de formateo convalue
como argumento, y mostrarán el valor formateado devuelto (que puede tener cualquier tipo). Si no especificas la función de formateo, se mostrará el mismo valorvalue
original.
Devuelve
useDebugValue
no devuelve nada.