首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当从reach/路由器切换到reach路由器时,如何设置basename?

当从reach/路由器切换到reach路由器时,如何设置basename?
EN

Stack Overflow用户
提问于 2021-12-21 16:19:32
回答 1查看 560关注 0票数 2

我正在从reach/路由器迁移到react路由器v6,并且我有一组这样的路由

代码语言:javascript
复制
<Router basename={appPath}>
  <Dashboard path="/" />}
  <DashboardMessages path="messages"/>
  <DashboardTasks path="tasks" />
  <AboutPage path="about" />
</Router>

但是在v6的react路由器中,它看起来是这样的:

代码语言:javascript
复制
<Routes>
  <Route path="/" element={<Dashboard />}>
    <Route
      path="messages"
      element={<DashboardMessages />}
    />
    <Route path="tasks" element={<DashboardTasks />} />
  </Route>
  <Route path="about" element={<AboutPage />} />
</Routes>

但路线不需要名字。我该怎么设置这个?

更新:在文档中写着:

“该道具可用于使应用程序中的所有路由和链接相对于它们共享的URL路径名的”基本“部分。”

但如果你这样做

代码语言:javascript
复制
<Router basename={appPath}>
 <Routes>
  <Route path="/" element={<Dashboard />}>
    <Route
      path="messages"
      element={<DashboardMessages />}
    />
    <Route path="tasks" element={<DashboardTasks />} />
  </Route>
  <Route path="about" element={<AboutPage />} />
 </Routes>
<Router>

打字本抱怨:

代码语言:javascript
复制
 Type '{ children: Element; basename: string; }' is missing the following properties from type 'RouterProps': location, navigator

我猜我可以从useLocation()获得位置,但是似乎没有一种方法可以获得导航器。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-12-21 16:23:13

使用管理导航上下文的较高级别路由器之一。

示例:

代码语言:javascript
复制
import { BrowserRouter, Routes, Route } from 'react-router-dom';

<BrowserRouter basename={appPath}>
  <Routes>
    <Route path="/" element={<Dashboard />}>
      <Route
        path="messages"
        element={<DashboardMessages />}
      />
      <Route path="tasks" element={<DashboardTasks />} />
    </Route>
    <Route path="about" element={<AboutPage />} />
  </Routes>
<BrowserRouter>

Router是所有其他路由器共享的低级接口.

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70438491

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档