useDebugValue 是一个 React Hook,它让你可以在 React DevTools. 中为自定义 Hook 添加一个标签
useDebugValue(value, format?)Reference
useDebugValue(value, format?)
在你的 自定义 Hook 的顶层调用 useDebugValue,以显示一个可读的调试值:
import { useDebugValue } from 'react';
function useOnlineStatus() {
// ...
useDebugValue(isOnline ? '在线' : '离线');
// ...
}Parameters
value:你想在 React DevTools 中显示的值。它可以是任意类型。- 可选
format:一个格式化函数。当组件被检查时,React DevTools 会以value作为参数调用该格式化函数,然后显示返回的格式化值(该值也可以是任意类型)。如果你不指定格式化函数,则会直接显示原始的value。
Returns
useDebugValue 不返回任何内容。
Usage
为自定义 Hook 添加标签
在你的 自定义 Hook 的顶层调用 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); }; }