我正在尝试升级到 React Router v6 ( react-router-dom 6.0.1)。
这是我更新的代码:
\nimport { BrowserRouter, Navigate, Route, Routes } from \'react-router-dom\';\n\n<BrowserRouter>\n <Routes>\n <Route path="/" element={<Home />} />\n <Route path="/lab" element={<Lab />} />\n <Route render={() => <Navigate to="/" />} />\n </Routes>\n</BrowserRouter>\nRun Code Online (Sandbox Code Playgroud)\n最后Route是将其余路径重定向到/.
但是,我收到了一个错误
\n\n\nTS2322:类型 \'{ 渲染:() => 元素;}\' 不可分配给类型“IntrinsicAttributes & (PathRouteProps | LayoutRouteProps | IndexRouteProps)\”。\xc2\xa0\xc2\xa0Property \'render\' 在类型 \'IntrinsicAttributes & (PathRouteProps | LayoutRouteProps | IndexRouteProps)\' 上不存在。
\n
然而,根据文档,它确实有renderfor Route. …
我不明白使用IndexRoute和IndexLink的目的是什么.似乎在任何情况下,除非关闭路径被激活,否则下面的代码将首先选择Home组件.
<Route path="/" component={App}>
<IndexRoute component={Home}/>
<Route path="about" component={About}/>
</Route>
Run Code Online (Sandbox Code Playgroud)
VS
<Route path="/" component={App}>
<Route path="home" component={Home}/>
<Route path="about" component={About}/>
</Route>
Run Code Online (Sandbox Code Playgroud)
第一种情况的优势/目的是什么?