需要使用 import { renderRoutes } from "react-router-config";
先定义好静态路由数组 const routes = []
,然后使用 {renderRoutes(routes)}
转换
import React, { lazy, Suspense } from "react";
import { Redirect } from "react-router-dom";
import HomeLayout from "../layouts/HomeLayout";
import BlankLayout from "../layouts/BlankLayout";
const SuspenseComponent = Component => props => {
return (
<Suspense fallback={null}>
<Component {...props}></Component>
</Suspense>
)
}
const RecommendComponent = lazy(() => import("../application/Recommend/"));
const SingersComponent = lazy(() => import("../application/Singers/"));
const RankComponent = lazy(() => import("../application/Rank/"));
const AlbumComponent = lazy(() => import("../application/Album/"));
const SingerComponent = lazy(() => import("./../application/Singer/"));
const SearchComponent = lazy(() => import("./../application/Search/"));
export default [
{
component: BlankLayout,
routes: [
{
path: "/",
component: HomeLayout,
routes: [
{
path: "/",
exact: true,
render: () => <Redirect to={"/recommend"} />
},
{
path: "/recommend",
component: SuspenseComponent(RecommendComponent),
routes: [
{
path: "/recommend/:id",
component: SuspenseComponent(AlbumComponent)
}
]
},
{
path: "/singers",
component: SuspenseComponent(SingersComponent),
key: "singers",
routes: [
{
path: "/singers/:id",
component: SuspenseComponent(SingerComponent)
}
]
},
{
path: "/rank/",
component: SuspenseComponent(RankComponent),
key: "rank",
routes: [
{
path: "/rank/:id",
component: SuspenseComponent(AlbumComponent)
}
]
},
{
path: "/album/:id",
exact: true,
key: "album",
component: SuspenseComponent(AlbumComponent)
},
{
path: "/search",
exact: true,
key: "search",
component: SuspenseComponent(SearchComponent)
}
]
}
]
}
];
import React from "react";
import { Provider } from "react-redux";
import { GlobalStyle } from "./style";
import { renderRoutes } from "react-router-config";
import { IconStyle } from "./assets/iconfont/iconfont";
import store from "./store/index";
import routes from "./routes/index.js";
import { HashRouter } from "react-router-dom";
import "./fix.css";
function App() {
return (
<Provider store={store}>
<HashRouter>
<GlobalStyle></GlobalStyle>
<IconStyle></IconStyle>
{renderRoutes(routes)}
</HashRouter>
</Provider>
);
}
export default App;