请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

Navigate 无法实现刷新页面后的自动跳转

你好,请问一下,我使用了 两种方式都没有使得Navigate实现跳转,其中user我已经从上层组件中通过属性引入了,还是不行,不知道是我的代码有问题还是现在Navigate不能使用了?请帮忙看看啊,谢谢

<Main>
   <Router>
     <Routes>
       <Route path={"/projects"} element={<ProjectListScreen />} />
       <Route path={"/projects/:projectId/*"} element={<ProjectScreen />} />
       {user && <Navigate to={"/projects"} replace={true} />}
       {/*<Navigate to={"/projects"} replace={true}/>*/}
     </Routes>
   </Router>
 </Main>

正在回答 回答被采纳积分+3

2回答

qq_落花流水_6 2021-10-01 17:26:14
<Routes>
  <Route path={'/projects'} element={<ProjectListScreen />} />
  <Route path={'/projects/:projectId/*'} element={<Project />} />
  <Route element={<Navigate to={'/projects'} />}/>
</Routes>

这样写就可以,最后一个Route没有path,如果前面的都没有匹配就会匹配最后那个Route

0 回复 有任何疑惑可以回复我~
慕用8523549 2021-09-13 13:07:11
Navigate要写在Routes外面
</Routes>
<Navigate to={'/projects'} />


0 回复 有任何疑惑可以回复我~
  • 提问者 frych #1
    不对吧,这样就无限渲染了,而且和老师的代码也不一致
    回复 有任何疑惑可以回复我~ 2021-09-13 13:28:31
  • 慕用8523549 回复 提问者 frych #2
    enen。发现了。
    回复 有任何疑惑可以回复我~ 2021-09-13 20:32:30
  • 慕用8523549 回复 提问者 frych #3
    我调试发现,如果navigate放在route里面,在编译时会被过滤掉。
    就是浏览器在运行时,根据不会运行Navigate
    回复 有任何疑惑可以回复我~ 2021-09-14 15:50:07
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信