在ReactJS中从未初始化BrowserHistory
我是个新手。我尝试了一些教程来做路由选择,但最终出现了错误,其中“browserHistory”未定义。代码和错误消息如下所示 Main.js在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
'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};