useDebugValue
useDebugValue - хук React, який дозволяє додавати мітку до користувацького хуку у React DevTools.
useDebugValue(value, format?)
Довідник
useDebugValue(value, format?)
Викличте useDebugValue на верхньому рівні вашого користувацького хука для виведення читабельного значення, яке можна налагодити:
import { useDebugValue } from 'react';
function useOnlineStatus() {
// ...
useDebugValue(isOnline ? 'Online' : 'Offline');
// ...
}
Дивіться більше прикладів нижче.
Параметри
value: Значення, яке ви хочете відобразити в React DevTools. Воно може мати будь-який тип.- опціонально
format: Функція форматування. Коли компонент буде перевірено, React DevTools викличе функцію форматування зvalueв якості аргументу, а потім відобразить повернуте відформатоване значення (яке може мати будь-який тип). Якщо ви не вкажете функцію форматування, буде показано оригінальнезначення.
Повернення
useDebugValue не повертає нічого.
Використання
Додавання мітки до користувацького хука
Викличте Це дає компонентам, що викликають Без виклику useDebugValue на верхньому рівні вашого користувацького хука , щоб вивести читабельне useOnlineStatus мітку на кшталт OnlineStatus: "Online" при їх огляді:
useDebugValue буде показано лише базові дані (у цьому прикладі true).
import { useOnlineStatus } from './useOnlineStatus.js';
function StatusBar() {
const isOnline = useOnlineStatus();
return <h1>{isOnline ? '✅ Online' : '❌ Disconnected'}</h1>;
}
export default function App() {
return <StatusBar />;
}
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());
Ваша функція форматування отримає toDateString() для нього при кожному рендерингу.