当前位置: 首页 > 面试题库 >

道具“历史”在“路由器”中被标记为必填项,但其值为“未定义”。在路由器中

宇文修筠
2023-03-14
问题内容

我是ReactJs的新手。这是我的代码:

var React = require('react');
var ReactDOM = require('react-dom');
var {Route, Router, IndexRoute, hashHistory} = require('react-router');
var Main = require('Main');
ReactDOM.render(
  <Router history={hashHistory}>
  <Route path="/" component={Main}></Route>
</Router>, document.getElementById('app'));

并使用webpack进行编译。我也将Main组件添加到了别名中。控制台抛出以下错误:

和网络上的许多搜索,但我无法解决此问题。React Router是版本4


问题答案:

如果您使用的是react-router v4,则还需要安装react-router-dom。之后,从react-router-
dom导入BrowserRouter并将Switch Router切换为BrowserRouter。v4似乎改变了几件事。另外,react-
router文档已过时。这是我的工作代码:

import React from 'react';
import ReactDOM from 'react-dom';
import { BrowserRouter, Route } from 'react-router-dom'
import App from './components/App';

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


 类似资料: