Cannot read property 'history' of undefined — react-router v4 & create-react-app

烈酒焚心 提交于 2019-12-12 04:38:50

问题


I could not use Link to navigate, here's my code

Folders structure

components
----App.js
----home
    ----Home
index.js

index.js

import React from 'react';
import ReactDOM from 'react-dom';
import registerServiceWorker from './registerServiceWorker';
import App from './components/App';

ReactDOM.render(
    <App />
    ,
    document.getElementById('root')
);
registerServiceWorker();

App.js

import React, { Component } from 'react';

import {
    BrowserRouter as Router,
    Route,
    Link
} from 'react-router-dom';

import Home from './home/Home';

class App extends Component {
  render() {
    return (
      <div className="App">
        <p className="App-intro">
          To get started, edit <code>src/App.js</code> and save to reload.
        </p>
        <Link to="/home">home</Link>
        <Router>
              <Route
                path={'/home'}
                exact={true}
                component={Home}
              />
        </Router>
      </div>
    );
  }
}

export default App;

Home.js

import React, { Component } from 'react';

class Home extends Component {
  render() {
    return (
      <div className="Home">
        Home Page
      </div>
    );
  }
}

export default Home;

it seems to be ok without Link except that when i enter directly localhost:3000/home to url address bar, home component still doesn't appear. i have tried some way to update/re-install react-router but nothing changed.


回答1:


Your Link component need to be present within the Router component. You can restructure your code like

class App extends Component {
  render() {
    return (
      <Router>
      <div className="App">
        <p className="App-intro">
          To get started, edit <code>src/App.js</code> and save to reload.
        </p>
        <Link to="/home">home</Link>
        <Route
                path={'/home'}
                exact={true}
                component={Home}
              />

      </div>
      </Router>
    );
  }
}


来源:https://stackoverflow.com/questions/45429185/cannot-read-property-history-of-undefined-react-router-v4-create-react-ap

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!