App.tsx 2.02 KB
Newer Older
mayi's avatar
mayi committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
import React, { useState, useEffect } from "react";
import logo from "./assets/images/logo.svg";
// import "./App.css";
import styles from "./App.module.css";
import robots from "./mockdata/robots.json";
import Robot from "./components/robots";
import RobotDiscount from'./components/RobotDiscount'
import ShoppingCart from "./components/ShoppingCart";
import { Console } from "console";
interface Props {}
interface State {
  robotGallary: any;
  counter: number;
}
const App: React.FC = (props) => {
  const [counter, setCounter] = useState<number>(0);
  const [robotGallary, setrobotGallary] = useState<any>([]);
  const [loading, setLoading] = useState<boolean>(false);
  const [error,setError] = useState<String>()
  useEffect(() => {
    document.title = `点击次数为:${counter}`;
  }, [counter]);
  useEffect(() => {
    const fetchData = async () => {
      setLoading(true);
      try{

    
      const response = await fetch(
        "https://jsonplaceholder.typicode.com/users"
      );
      const data = await response.json();
      setrobotGallary(data);
      setLoading(false);
      }catch(e){
        setError(e.message)
      }
    };
    fetchData();
  }, []);
41 42

  return (
mayi's avatar
mayi committed
43 44 45 46 47 48 49 50
    <div className={styles.app}>
      <div className={styles.appHeader}>
        <img src={logo} className={styles.appLogo} alt="" />
        <h1>老徐的机器人练习平台</h1>
        <button
          onClick={() => {
            setCounter(counter + 1);
          }}
51
        >
mayi's avatar
mayi committed
52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
          jishuqi
        </button>
        <span>counter:{counter}</span>
      </div>
      <ShoppingCart />
      {!error || error!==''&& <div>网站出错:{error}</div>}
      {!loading ? (
        <div className={styles.robotList}>
          {robotGallary.map((item,index) => (
            index%2==0?
            <RobotDiscount id={item.id} email={item.email} name={item.name}/>:
            <Robot id={item.id} email={item.email} name={item.name} />
          ))}
        </div>
      ) : (
        <h2>Loading加载中</h2>
      )}
69 70
    </div>
  );
mayi's avatar
mayi committed
71
};
72 73

export default App;