打工很辛苦吧 2024-01-10 11:08 采纳率: 22.7%
浏览 6
已结题

使用useRoutes中lazy遇到问题

我是不使用错了😂

import { useRoutes } from 'react-router-dom'
import Home from '../pages/Home'
import Test from '../pages/Test'


const AppRoutes = () => { 
  return useRoutes([
    {
      path: '/',
      element: <Home/>,
      children: [
        {
          path: 'test',
          async lazy() {
            return {
              element: <Test />
            }
          }
        },
      ]
    }
  ])
}

export default AppRoutes

home组件

import { Outlet } from "react-router-dom"

function Home() {
  return <>
    home
    < Outlet/>
  </>
}

export default Home

App.tsx

import React from 'react';
import './App.css';
import AppRoutes from '@/router'

function App() {
  
  return (
    <div className="App">
      <AppRoutes />
    </div>
  );
}

export default App;

使用lazy后访问/test后test组件没有展示

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2024-01-10 14:12
    关注

    【以下回答由 GPT 生成】

    问题所在可能是路径配置的问题,您可以检查一下您的路由配置,确保正确地将/test路径配置到test组件上。

    以下是一个可能的解决方案:

    1. 首先,确保您已经安装了react-router-domreact-dom这两个依赖:
    npm install react-router-dom react-dom
    
    1. 在您的根组件中引入所需的模块:
    import { BrowserRouter as Router, Route, Routes } from 'react-router-dom';
    import { Suspense, lazy } from 'react';
    
    1. 创建一个懒加载的test组件:
    const Test = lazy(() => import('./Test'));
    
    1. 在根组件中使用RoutesRoute进行路由配置:
    function App() {
      return (
        <Router>
          <Suspense fallback={<div>Loading...</div>}>
            <Routes>
              <Route path="/test" element={<Test />} />
            </Routes>
          </Suspense>
        </Router>
      );
    }
    
    export default App;
    
    1. 确保您的test组件正确导出,并且在正确的路径下:
    function Test() {
      return <div>This is the test component</div>;
    }
    
    export default Test;
    

    通过以上步骤,您应该能够正确地在访问/test路径时显示test组件。

    如果问题仍然存在,请提供更多的代码示例以便我们能够更好地理解问题所在。


    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 1月16日
  • 修改了问题 1月10日
  • 修改了问题 1月10日
  • 创建了问题 1月10日