useDebugValue
useDebugValue
— Хук React, які дазваляе дадаць цэтлік да ўласнага хука ў React DevTools.
useDebugValue(value, format?)
Reference
useDebugValue(value, format?)
Выклічце useDebugValue
на верхнім узроўні вашага ўласнага хука каб адабразіць прыдатнае да чытання значэнне:
import { useDebugValue } from 'react';
function useOnlineStatus() {
// ...
useDebugValue(isOnline ? 'Online' : 'Offline');
// ...
}
Болей прыкладаў глядзіце ніжэй.
Параметры
value
— значэнне, якое вы хочаце паказваць у React DevTools. Яно можа мець любы тып.- (неабавязковае)
format
— функцыя фарматавання. Пры даследванні элемента, React DevTools выкліча функцыю фарматавання, перадаўшы ў яеvalue
у якасці аргумента, і пакажа адфарматаванае значэнне, якое верне функцыя (яна прымае значэнне любога тыпу). Калі не задаваць функцыю фарматавання, будзе паказане арыгінальнае значэннеvalue
.
Вяртае
useDebugValue
не вяртае нічога.
Выкарыстанне
Дадаванне цэтліка да ўласнага хука
Выклічце useDebugValue
на верхнім узроўні вашага ўласнагахука каб адабразіць прыдатнае да чытання значэнне для адладкі для React DevTools.
import { useDebugValue } from 'react';
function useOnlineStatus() {
// ...
useDebugValue(isOnline ? 'Online' : 'Offline');
// ...
}
Гэта задасць кампаненту, які выклікае useOnlineStatus
цэтлік OnlineStatus: "Online"
пры даследванні яго:
Без выкліку useDebugValue
толькі асноўнае значэнне будзе паказанае (у дадзеным прыкладзе, гэта было б 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); }; }
Адтэрміноўка фарматавання значэння для адладкі
Вы заўсёды можаце перадаць функцыю фарматавання ў якасці другога аргумента useDebugValue
:
useDebugValue(date, date => date.toDateString());
Вашая функцыя фарматавання атрымае значэнне для адладкі ў якасці параметра і мае вярнуць фарматаванае значэнне. Калі вы дасладуеце свой кампанент, React DevTools выклікае функцыю і паказвае вынік выканання.
Гэта дазваляе пазбегнуць выканання патэнцыйна складанай логікі да таго часу, як кампанент будзе даследвацца. Напрыклад, калі date
— экзэмпляр Date, гэта пазбягае выканання toDateString()
падчас кожнага перарэндэрынгу.