useDebugValue не отображается - PullRequest
0 голосов
/ 22 марта 2020

Я только что попытался использовать useDebugValue Hook . Я создал следующий код:

import React, { useState, useDebugValue, useEffect } from "react";
import "./App.css";

function App() {
  const [isOnline, setIsOnline] = useState(true);

  useDebugValue(isOnline ? "Online" : "Offline");

  useEffect(() => {
    const interval = setInterval(() => {
      setIsOnline(isOnline => !isOnline);
    }, 1000);
    return () => clearInterval(interval);
  }, []);

  return <div className="App">Hello World: {"" + isOnline}</div>;
}

export default App;

Мой код работает нормально: каждая секунда isOnline изменяется. Но где я вижу debugValue? Моя консоль выглядит следующим образом

enter image description here

1 Ответ

1 голос
/ 22 марта 2020

Вы должны использовать его внутри пользовательского крючка:

import React from "react";
import "./styles.css";

function useFriendStatus() {
  const [isOnline, setIsOnline] = React.useState(true);

  React.useEffect(() => {
    const interval = setInterval(() => {
      setIsOnline(isOnline => !isOnline);
    }, 1000);
    return () => clearInterval(interval);
  }, []);
  // Show a label in DevTools next to this Hook
  // e.g. "FriendStatus: Online"
  React.useDebugValue(isOnline ? "Online" : "Offline");

  return isOnline;
}

export default function App() {
  const isOnline = useFriendStatus();

  React.useDebugValue(isOnline ? "Online" : "Offline");

  return <div className="App">Hello World: {"" + isOnline}</div>;
}

Edit proud-currying-nrcyr

Демо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...