当前位置: 首页 > 知识库问答 >
问题:

在Reactjs中使用React-路由器重定向

郑胡媚
2023-03-14

我想在单击登录页中的按钮后重定向到主页。但是,当我单击地址栏中的按钮时,主页的路径会显示出来(它重定向到主页)…但它不会呈现与该路径相关的组件。它仍然显示带有主页地址的登录页。因此,我必须刷新页面才能呈现主页。这里有什么问题???

在我的登录页面中…这是我用于单击按钮的功能。。

gotopage()
  {
        this.props.history.push('/home')
   }

在我的索引,js页面...

import React from "react";
import { render } from "react-dom";
import {BrowserRouter as Router,Route,Redirect ,browserHistory} from "react-router-dom"; 
import { Firstpage } from "./Firstpage";
import { Login } from "./Login";
import { Home } from "./Home";
import createBrowserHistory from 'history/createBrowserHistory'
const history=createBrowserHistory();


    class App extends React.Component {
    render(){
    return(
    <Router history={browserHistory}>
         <div>
        <switch>
        <Route path="/"   component={Firstpage} exact> </Route>
        <Route path="/home"   component={Home}> </Route>
        <Route path="/login"  render={(props) => <Login {...props} history= 
         {history} } />}> </Route>
         </switch>
         </div>
     </Router>
     );
   }
 }

共有1个答案

公冶京
2023-03-14

我有几点建议。由于您使用的是React router 4.x BrowserRouter,所以根据文档,它没有历史道具,请删除该道具。将您的html" target="_blank">代码更新为以下内容,并查看其是否有效。

将交换机更改为交换机,我看不到它从反应路由器导入。在登录组件中使用路由器从反应路由器。

export default withRouter(Login)

更新主路由配置如下。

     <Router history={browserHistory}>
        <Switch>
            <Route path="/"   component={Firstpage} exact> </Route>
            <Route path="/home"   component={Home}> </Route>
            <Route path="/login"  render={(props) => <Login {...props}/>}> </Route>
        </Switch>
     </Router>

阅读更多关于与路由器,浏览器路由器在这里https://reacttraining.com/react-router/web/api/BrowserRouter.

关于更多细节,请看下面的帖子https://medium.com/@AkyunaAkish/understanding-react-router-4-df73a66d96c4

 类似资料:
  • 我正在尝试使用react router(版本^1.0.3)做一个简单的重定向到另一个视图的操作,我只是觉得有些累。 我只需要将用法发送到“/login”,就这样。 我能做什么? 控制台中的错误: 未捕获的引用错误:未定义PropType 用我的路线归档

  • 我一直试图做一个简单的重定向到按钮点击的另一个组件,但由于某种原因,它不起作用。我想重定向到/dashboard并从登录显示AdminServices,如下所示: //索引。js //应用程序。js //登录。js //管理服务。js

  • 我正在学习如何通过在线教程做出反应。 这是一个关于使用React路由器的基本示例: 与我的应用程序组件: 但是,我在使用IndexRoute时遇到问题,因为它没有显示任何内容,所以我在npm上搜索react router dom v4模块,但里面没有IndexRoute。相反,它使用的是: 那么,我如何渲染2组件为1路径?

  • 在开发模式下运行时,Spring Security重新定向到React前端(使用React路由器运行)的登录页面时,我遇到了一个配置问题。我相信我的前端没有接收到重定向,这是因为我对服务器端路由如何与SPA路由交互的noob理解。 我的开发前端web服务器(使用Facebook Create React App)在localhost:3000上运行,我的后端Spring Boot Tomcat在l

  • 我想从API中读取要显示的产品。然后,当我按下其中一个显示的产品时,它应该使用url中的产品ID和要在页面上查看的产品详细信息将我路由到一个组件,以获取有关该产品的详细信息。我在这里读取了API中的数据,并详细显示了产品。 我想通过产品ID添加一个路由链接。如何将详细信息作为其他组件的道具发送?

  • 令人惊讶的是,在Google和StackOverflow中很难找到它,我在这里问,在React路由器中使用