App.tsx 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. import "@/assets/styles/base.css";
  2. import React from "react";
  3. import { Router, Route, Switch } from "react-router-dom";
  4. import history from "./utils/history";
  5. import SpinLoding from "./components/SpinLoding";
  6. import { Image } from "antd";
  7. import MessageCom from "./components/Message";
  8. import store, { RootState } from "./store";
  9. import { useSelector } from "react-redux";
  10. import NotFound from "./components/NotFound";
  11. const Home = React.lazy(() => import("./pages/A1_Home"));
  12. const Goods = React.lazy(() => import("./pages/A2_Goods"));
  13. function App() {
  14. // 从仓库中获取查看图片的信息
  15. const lookBigImg = useSelector(
  16. (state: RootState) => state.A0layout.lookBigImg
  17. );
  18. return (
  19. <div id="app">
  20. <Router history={history}>
  21. <React.Suspense fallback={<SpinLoding />}>
  22. <Switch>
  23. {/* 线上开发 */}
  24. <Route exact path="/" component={Home} />
  25. <Route exact path="/goods" component={Goods} />
  26. {/* 本地化 */}
  27. {/* <Route exact path="/" component={Goods} />
  28. <Route exact path="/home" component={Home} /> */}
  29. {/* 找不到页面 */}
  30. <Route path="*" component={NotFound} />
  31. </Switch>
  32. </React.Suspense>
  33. </Router>
  34. {/* 所有图片点击预览查看大图 */}
  35. <Image
  36. preview={{
  37. visible: lookBigImg.show,
  38. src: lookBigImg.url,
  39. onVisibleChange: (value) => {
  40. // 清除仓库信息
  41. store.dispatch({
  42. type: "layout/lookBigImg",
  43. payload: { url: "", show: false },
  44. });
  45. },
  46. }}
  47. />
  48. {/* antd 轻提示 ---兼容360浏览器 */}
  49. <MessageCom />
  50. </div>
  51. );
  52. }
  53. const MemoApp = React.memo(App);
  54. export default MemoApp;