【问题标题】:Navigation issues: this.props history appears undefined导航问题:this.props 历史显示未定义
【发布时间】:2020-03-22 07:25:27
【问题描述】:

我无法转到另一个页面,因为 this.props.history 似乎未定义。下面是我看到的错误的屏幕截图。请注意,我使用登录组件中的this.props.history.push("/welcome") 呈现了我的欢迎组件,然后它运行良好。

这是我的 App.js

import React from "react";
import { BrowserRouter as Router, Route } from "react-router-dom";
import Login from "./Components/Login";
import "./App.css";
import Signup from "./Components/Signup";
import Welcome from "./Components/Welcome";
import RecruiterPage from "./Components/Common/RecriterPage";


function App() {
  return (
    <Router>
      <div className="App">
        <Route exact path="/signup" component={Signup} />
        <Route exact path="/" component={Login} />
        <Route exact path="/welcome" component={Welcome} />
        <Route exact path="/recruiter" component={RecruiterPage} />
      </div>
    </Router>
  );
}

export default App;

【问题讨论】:

  • Here is your answer希望对你有帮助
  • 由于类“App”的划分(我的意思是
    ),你打破了路由器及其路由之间的链。所以删除这个部门,历史将再次可用。
  • @Sercanözen 我刚刚将我的&lt;div className="App"&gt; 移动到&lt;Router&gt; 之前,但是问题仍然存在。
  • @ZombieChowder 我错过了一些东西,因为我已经尝试了你在第二条评论中提到的解决方案

标签: javascript reactjs react-router url-routing


【解决方案1】:

我的最佳猜测是,您尝试从中导航的组件是父组件的子组件,它可能有权访问历史记录,也可能无法访问,因此无法访问历史记录道具。

有两种方法可以解决这个问题: 1.将历史作为道具从父组件传递给子组件或 2. 对上述组件执行此操作:

import { withRouter } from 'react-router-dom'

...导出组件时,将其包装在 withRouter 中,例如

export default withRouter(ComponentName)

【讨论】:

  • 是的,在这种情况下,将在 ModalButton.js 上
猜你喜欢
相关资源
最近更新 更多
热门标签