想实现先请求接口然后再生成路由改如何做到?(下面代码试了几次都不行)
import { useState, useEffect } from 'react'
import reactLogo from './assets/react.svg'
import viteLogo from '/vite.svg'
import './App.css'
import { Button } from 'antd-mobile'
import axios from 'axios'
import {
createBrowserRouter,
RouterProvider,
} from "react-router-dom";
import {Router as RemixRouter} from "@remix-run/router/dist/router";
function test_request() {
return axios.get('http://localhost:8888/api/')
.then(function (response) {
return response.data.Response
})
}
interface Route { path: string, element?: string }
function App() {
const [route, setRoute] = useState<RemixRouter>()
// createBrowserRouter
const router = test_request().then((data) => {
// let c = data.map((v : Route) => {
// return { path: v.path, element: <div>2222222222222</div> }
// })
// setRoute(createBrowserRouter(c))
return createBrowserRouter(data)
})
// useEffect(() => {
// test_request().then((data) => {
// let c = data.map((v : Route) => {
// return { path: v.path, element: <div>2222222222222</div> }
// })
// // setRoute(createBrowserRouter(c))
// return c
// })
//
//
// },[])
return (
<div className="App">
<div>
<img src={viteLogo} className="logo" alt="Vite logo" />
</div>
<RouterProvider router={router} />
</div>
)
}
export default App