useDebugValue
useDebugValue è un Hook React che ti permette di aggiungere un’etichetta a un custom Hook in React DevTools.
useDebugValue(value, format?)Reference
useDebugValue(value, format?)
Chiama useDebugValue al top level del tuo custom Hook per visualizzare un valore di debug leggibile:
import { useDebugValue } from 'react';
function useOnlineStatus() {
// ...
useDebugValue(isOnline ? 'Online' : 'Offline');
// ...
}Parameters
value: Il valore che vuoi visualizzare in React DevTools. Può essere di qualsiasi tipo.- optional
format: Una funzione di formattazione. Quando il componente viene ispezionato, React DevTools chiamerà la funzione di formattazione con ilvaluecome argomento, e poi visualizzerà il valore formattato restituito (che può essere di qualsiasi tipo). Se non specifichi la funzione di formattazione, verrà visualizzato ilvalueoriginale.
Returns
useDebugValue non restituisce nulla.
Usage
Aggiungere un’etichetta a un custom Hook
Chiama useDebugValue al top level del tuo custom Hook per visualizzare un valore di debug leggibile per React DevTools.
import { useDebugValue } from 'react';
function useOnlineStatus() {
// ...
useDebugValue(isOnline ? 'Online' : 'Offline');
// ...
}Questo fornisce ai componenti che chiamano useOnlineStatus un’etichetta come OnlineStatus: "Online" quando li ispezioni:
Senza la chiamata a useDebugValue, verrebbero visualizzati solo i dati sottostanti (in questo esempio, 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); }; }
Posticipare la formattazione di un valore di debug
Puoi anche passare una funzione di formattazione come secondo argomento a useDebugValue:
useDebugValue(date, date => date.toDateString());La tua funzione di formattazione riceverà il valore di debug come parametro e dovrebbe restituire un valore di visualizzazione formattato. Quando il tuo componente viene ispezionato, React DevTools chiamerà questa funzione e visualizzerà il suo risultato.
Questo ti permette di evitare di eseguire una logica di formattazione potenzialmente costosa a meno che il componente non venga effettivamente ispezionato. Ad esempio, se date è un valore Date, questo evita di chiamare toDateString() su di esso per ogni renderizzazione.