Getiing错误TypeError:使用React-router时历史记录未定义

时间:2018-07-20 10:21:50

标签: reactjs react-router

我是React的新手。当我开始在React中使用路由时,我遇到的错误是 TypeError:历史记录未定义

我的代码是

import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import App from './App';
import Login from './components/login/Login';
import registerServiceWorker from './registerServiceWorker';
import { Router, Route, browserHistory } from 'react-router'

ReactDOM.render(
  <Router history={browserHistory}>
    <Route path="/" component={App}>

    </Route>
    <Route path="/login" component={Login} />
  </Router>
  ,
  document.getElementById('root')
);
registerServiceWorker();

3 个答案:

答案 0 :(得分:2)

检查您的反应版本,我认为browserHistory不适用于版本4,您必须改用'react-router-dom'并导入BrowserRouter,然后按以下方式设置路由:

<BrowserRouter>
    <Switch>
        <Route exact path="/" render={props => <App {...props} /> } />
        <Route path="/login" render={props => <Login {...props} /> } />
    </Switch>
</BrowserRouter>

希望有帮助。

答案 1 :(得分:0)

如果这是React Router v4,则说明操作不正确。

import { BrowserRouter, Route, Switch } from "react-router-dom";

ReactDOM.render(
  <BrowserRouter>
    <Route path="/" component={App} />
    <Route path="/login" component={Login} />
  </BrowserRouter>
  ,
  document.getElementById('root')
);

然后从您的组件中访问这样的历史记录道具。

const App = props => {
console.log(this.props.history);
return <div>App</div>
};

答案 2 :(得分:0)

您正在使用哪个版本的$response = DB::table('match_players') ->join('users', 'users.steam_id', '=', 'match_players.steam_id') ->where('match_players.match_id', '=', $match->match_id) ->select('users.username') ->get(); / react-router? 由于react的第4版,RRbrowserHistory一起导入。因此,例如,您可以执行以下操作:

BrowserRouter

它应该运行良好。有关更多信息,请参见this