App.tsx 952 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. import React, { useEffect, useState } from "react";
  2. import logo from "./logo.svg";
  3. import "./App.css";
  4. type Greeting = {
  5. id: number;
  6. name: string;
  7. };
  8. function App() {
  9. const [greeting, setGreeting] = useState<Greeting>();
  10. useEffect(() => {
  11. fetch("/api")
  12. .then(res => res.json())
  13. .then(setGreeting)
  14. .catch(console.error);
  15. }, [setGreeting]);
  16. return (
  17. <div className="App">
  18. <header className="App-header">
  19. <img src={logo} className="App-logo" alt="logo" />
  20. {greeting ? (
  21. <p>Hello from {greeting.name}</p>
  22. ) : (
  23. <p>Loading...</p>
  24. )}
  25. <p>
  26. Edit <code>src/App.tsx</code> and save to reload.
  27. </p>
  28. <a
  29. className="App-link"
  30. href="https://reactjs.org"
  31. target="_blank"
  32. rel="noopener noreferrer"
  33. >
  34. Learn React
  35. </a>
  36. </header>
  37. </div>
  38. );
  39. }
  40. export default App;