useDebugValue
useDebugValue
je React Hook koji vam omogućava da dodate labelu za vaš prilagođeni Hook u React DevTools-u.
useDebugValue(value, format?)
Reference
useDebugValue(value, format?)
Pozovite useDebugValue
na vrhu vašeg prilagođenog Hook-a da biste prikazali čitljivu debug vrednost:
import { useDebugValue } from 'react';
function useOnlineStatus() {
// ...
useDebugValue(isOnline ? 'Online' : 'Offline');
// ...
}
Parametri
value
: Vrednost koju želite da prikažete u React DevTools-u. Može imati bilo koji tip.- opcioni
format
: Funkcija za formatiranje. Kada se komponenta pregleda, React DevTools će pozvati funkciju za formatiranje sa argumentomvalue
, a onda prikazati formatiranu vrednost koja je vraćena (koja može imati bilo koji tip). Ako ne specificirate funkciju za formatiranje, prikazaće se originalnivalue
.
Povratne vrednosti
useDebugValue
ne vraća ništa.
Upotreba
Dodavanje labele u prilagođeni Hook
Pozovite useDebugValue
na vrhu vašeg prilagođenog Hook-a da biste prikazali čitljivu debug vrednost za React DevTools.
import { useDebugValue } from 'react';
function useOnlineStatus() {
// ...
useDebugValue(isOnline ? 'Online' : 'Offline');
// ...
}
Ovo daje komponentama koje pozivaju useOnlineStatus
labelu poput OnlineStatus: "Online"
kada ih pregledate:

Bez useDebugValue
poziva, samo će podaci (u ovom primeru, true
) biti prikazani.
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); }; }
Odlaganje formatiranja debug vrednosti
Možete proslediti i funkciju za formatiranje kao drugi argument u useDebugValue
:
useDebugValue(date, date => date.toDateString());
Vaša funkcija za formatiranje će primiti debug vrednost kao parametar i trebalo bi da vrati formatiranu vrednost za prikazivanje. Kada vaša komponenta bude pregledana, React DevTools će pozvati ovu funkciju i prikazazi njen rezultat.
Ovo vam omogućava da izbegnete izvršavanje potencijalno skupe logike formatiranja osim ako komponenta zapravo nije pregledana. Na primer, ako je date
, vrednost Date tipa, ovo izbegava pozivanje toDateString()
za svaki render.