useDebugValue
是一个 React Hook,它允许您在 React 开发者工具 中为自定义 Hook 添加标签。
useDebugValue(value, format?)
参考
useDebugValue(value, format?)
在 自定义 Hook 的顶层调用 useDebugValue
以显示可读的调试值
import { useDebugValue } from 'react';
function useOnlineStatus() {
// ...
useDebugValue(isOnline ? 'Online' : 'Offline');
// ...
}
参数
value
: 您要在 React 开发者工具中显示的值。它可以是任何类型。- 可选
format
: 格式化函数。当检查组件时,React 开发者工具将使用value
作为参数调用格式化函数,然后显示返回的格式化值(可以是任何类型)。如果不指定格式化函数,则将显示原始value
。
返回值
useDebugValue
不返回任何内容。
用法
为自定义 Hook 添加标签
在自定义 Hook 的顶层调用 useDebugValue
,以便为 React 开发者工具 显示可读的 调试值。
import { useDebugValue } from 'react';
function useOnlineStatus() {
// ...
useDebugValue(isOnline ? 'Online' : 'Offline');
// ...
}
这使得调用 useOnlineStatus
的组件在您检查它们时会显示一个标签,例如 OnlineStatus: "在线"
如果没有调用 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); }; }