我是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();
答案 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版,RR
与browserHistory
一起导入。因此,例如,您可以执行以下操作:
BrowserRouter
它应该运行良好。有关更多信息,请参见this。