在ReactJS中从未初始化BrowserHistory

在ReactJS中从未初始化BrowserHistory,reactjs,react-router,Reactjs,React Router,我是个新手。我尝试了一些教程来做路由选择,但最终出现了错误,其中“browserHistory”未定义。代码和错误消息如下所示 Main.js 'use strict'; import React from 'react'; import ReactDOM from 'react-dom'; import { Router, Route, Link, IndexRoute, hashHistory,browserHistory} from 'react-router'; import App

我是个新手。我尝试了一些教程来做路由选择,但最终出现了错误,其中“browserHistory”未定义。代码和错误消息如下所示

Main.js

'use strict';

import React from 'react';
import ReactDOM from 'react-dom';
import { Router, Route, Link, IndexRoute, hashHistory,browserHistory} from 'react-router';
import App from './App.jsx';
import {Home,About,Contact} from './App.jsx';


ReactDOM.render((
   <Router history = {browserHistory}>
      <Route path = "/" component = {App}>
         <IndexRoute component = {Home} />
         <Route path = "home" component = {Home} />
         <Route path = "about" component = {About} />
         <Route path = "contact" component = {Contact} />
      </Route>
   </Router>

), document.getElementById('app'))
“严格使用”;
从“React”导入React;
从“react dom”导入react dom;
从“react Router”导入{Router,Route,Link,IndexRoute,hashHistory,browserHistory};
从“/App.jsx”导入应用程序;
从“/App.jsx”导入{Home,About,Contact};
ReactDOM.render((
),document.getElementById('app'))
来自浏览器控制台的错误消息

警告:失败的道具类型:道具
历史记录
标记为中所需
路由器
,但其值在路由器中为
未定义


如果实现已经过时,或者我错过了任何库来解决这个问题,请告诉我。我想我已经找到了原因,新的react路由器不再支持browserHistory。为了实现相同的目标,我使用了以下代码

import createBrowserHistory from 'history/createBrowserHistory';

const history = createBrowserHistory();

你能试试
useRouterHistory

import { useRouterHistory } from 'react-router';
import createBrowserHistory from 'history/lib/createBrowserHistory';

const createAppHistory = useRouterHistory(createBrowserHistory);

const history = createAppHistory({
 parseQueryString: parse,
 stringifyQuery: stringify
})

<Router history={history}/>
从'react router'导入{useRouterHistory};
从“history/lib/createBrowserHistory”导入createBrowserHistory;
const createAppHistory=useRouterHistory(createBrowserHistory);
const history=createAppHistory({
parseQueryString:parse,
stringifyQuery:stringify
})

反应路由器v4改变了一切。他们制造了独立的顶级路由器元件。将代码中的
替换为

import {HashRouter,Route} from 'react-router-dom';

<HashRouter>
    <Route path = "/" component = {App} />
</HashRouter>
从'react router dom'导入{HashRouter,Route};