You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ReactJS中登录成功后如何重定向到其他页面

React 登录成功后页面跳转实现指南

先纠正你现有代码的问题

你写的Redirect exact path="/Study"是错误用法,Redirect 组件的目标地址属性是to不是path,该写法适用于react-router v5版本。


不同场景的实现方案

场景1:路由层全局拦截跳转(也就是你现在用的条件渲染思路)

  • react-router v5 版本写法
import { Redirect, Route } from 'react-router-dom';
import Home from './Home';
import Study from './Study';

function App() {
  // user 为登录状态标识,可存在本地存储、状态管理库、React Context中
  const user = localStorage.getItem('loginStatus');
  
  return (
    <>
      <Route 
        exact 
        path="/" 
        render={() => user ? <Redirect to="/Study" /> : <Home />} 
      />
      <Route exact path="/Study" component={Study} />
      {/* 其他路由配置 */}
    </>
  )
}
  • react-router v6 版本写法
    v6已经移除了Redirect组件,替换为Navigate组件:
import { Navigate, Route, Routes } from 'react-router-dom';
import Home from './Home';
import Study from './Study';

function App() {
  const user = localStorage.getItem('loginStatus');
  
  return (
    <Routes>
      <Route 
        path="/" 
        element={user ? <Navigate to="/Study" replace /> : <Home />} 
      />
      <Route path="/Study" element={<Study />} />
      {/* 其他路由配置 */}
    </Routes>
  )
}

场景2:登录接口请求成功后直接跳转(编程式导航)

不需要在路由层写条件判断,直接在登录请求的回调函数里调用跳转API即可:

  • react-router v5 版本写法
import { useHistory } from 'react-router-dom';

function LoginPage() {
  const history = useHistory();

  const handleLoginSubmit = async (loginFormData) => {
    // 调用登录接口
    const loginResult = await request.post('/api/login', loginFormData);
    if (loginResult.success) {
      // 存储登录状态后跳转
      localStorage.setItem('loginStatus', '1');
      history.push('/Study');
    }
  }
}
  • react-router v6 版本写法
    v6移除了useHistory,替换为useNavigate:
import { useNavigate } from 'react-router-dom';

function LoginPage() {
  const navigate = useNavigate();

  const handleLoginSubmit = async (loginFormData) => {
    const loginResult = await request.post('/api/login', loginFormData);
    if (loginResult.success) {
      localStorage.setItem('loginStatus', '1');
      navigate('/Study');
    }
  }
}

内容的提问来源于stack exchange,提问作者Tony

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 12:39:04