首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >直接到基地嵌套反应路线

直接到基地嵌套反应路线
EN

Stack Overflow用户
提问于 2022-03-19 05:22:14
回答 2查看 29关注 0票数 1

我需要一个指向基本嵌套路由的链接,例如,我在仪表板UI中有一个URL "app/ dashboard“--我希望有一个链接--它将指向基本嵌套URL,即”app/仪表板“。当我在' to‘属性中使用"/“时,它会将我指向根基,即"app”。

Index.js

代码语言:javascript
复制
<Routes>
    <Route path="/" element={<App />}>
      <Route path="register" element={<Register />} />  
    </Route>
    <Route path="dashboard" element={<Dashboard />}>
      <Route index element={<Home />} />
      <Route path="upload-reciept" element={<UploadReciept />} />
      <Route path="upload-details" element={<UploadDetails />} />
    </Route> 
</Routes>

Dashboard.js

代码语言:javascript
复制
<ul className="space-y-2">
   <li>
      <NavLink to="/" className={({ isActive }) => isActive ? "bg-sky-200 text-sky-700" : "hover:bg-sky-200 hover:text-sky-700"}>
         <HomeIcon className="h-5 w-5 sm:h-6 sm:w-6"/>
         <span>Home</span>
      </NavLink>
   </li>
   <li>
      <NavLink to="upload-reciept"  className={({ isActive }) => isActive ? "bg-sky-200 text-sky-700" : "hover:bg-sky-200 hover:text-sky-700"}>
         <CloudUploadIcon className="h-5 w-5 sm:h-6 sm:w-6"/>    
         <span>Upload reciept</span>
      </NavLink>
   </li>
   <li>
      <NavLink to="upload-details"  className={({ isActive }) => isActive ? "bg-sky-200 text-sky-700" : "hover:bg-sky-200 hover:text-sky-700"}>
         <RefreshIcon className="h-5 w-5 sm:h-6 sm:w-6" />
         <span>Update details</span>
      </NavLink>
   </li>
</ul>

如何指导"Home“链接到"app/dashboard"?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-03-19 05:38:01

使用"."作为链接目标,以当前的“目录”路径"/dashboard"为目标。为这个链接添加end支柱,这样只有当路径以链接的目标路径(即"/dashboard" )结束时,它才是活动的。

代码语言:javascript
复制
<NavLink
  to="."
  end // <-- to match path "/dashboard"
  className={({ isActive }) =>
    isActive
      ? "bg-sky-200 text-sky-700"
      : "hover:bg-sky-200 hover:text-sky-700"
  }
>
  <HomeIcon className="h-5 w-5 sm:h-6 sm:w-6" />
  <span>Home</span>
</NavLink>

票数 1
EN

Stack Overflow用户

发布于 2022-03-19 05:39:17

您没有定义/app路由,您必须在第一步定义嵌套路由,如下所示

代码语言:javascript
复制
    <Routes>
         <Route to="/app" element={<App/>}>
         <Route to="dashboard" element={<Dashboard/>}>
              //other <Route/>
         </Route>
       </Route>
    <Routes>

或者您可以使用旧的方法(在v6之前),甚至可以将路由定义为硬代码,并定义正确的路由来做出反应,比如:<Route to="/where/ever/you/want" {...props} />用于其他事情,检查react router的文档,它非常容易,古德勒克,伙计!

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

https://stackoverflow.com/questions/71535590

复制
相关文章

相似问题

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