当在React Router中使用React.lazy时出现的错误

参考React Router v6教程进行实现后,build时index.js文件的大小会变得很大。为了解决这个问题,我将各个组件设置为动态导入。

import React, {lazy} from 'react'
import ReactDOM from 'react-dom/client'
import {
    createRoutesFromElements,
    createBrowserRouter,
    RouterProvider,
    Route,
} from "react-router-dom";
const Index = lazy(() => import('./routes/Index'));
const Root = lazy(() => import('./routes/Root'));
const Hoge = lazy(() => import('./routes/Hoge'));

const router = createBrowserRouter(
    createRoutesFromElements(
        <Route path="/" element={<Root />} >
            <Route>
                <Route index element={<Index />} />
                <Route path="hoge" element={<Hoge />} />
            </Route>
        </Route>
    )
);

ReactDOM.createRoot(document.getElementById('root')).render(
  <React.StrictMode>
    <RouterProvider router={router} />
  </React.StrictMode>,
)

使用React.lazy时,由于屏幕转换导致出现错误。

Oops!
Sorry, an unexpected error has occurred.

A component suspended while responding to synchronous input. This will cause the UI to be replaced with a loading indicator. To fix, updates that suspend should be wrapped with startTransition.

解决方法 (jiě jué fǎ)

<div>
  <Outlet />
</div>
<Suspense fallback={<div>Loading...</div>}>
  <Outlet />
</Suspense>

请依据下列内容提供中文翻译,仅需要一种选项:参考

 

bannerAds