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.