reactjs - 属性 `history` 在 `Router` 中被标记为必需,但其值为 `undefined` 。在路由器中

标签 reactjs react-router

我是 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 编译它。我还将主要组件添加到我的别名中。 控制台抛出这些错误: 我还阅读了这些链接:

React Router failed prop 'history', is undefined

How do I resolve history is marked required, when value is undefined?

Upgrading React-Router and replacing hashHistory with browserHistory

在网上进行了很多搜索,但我无法解决这个问题。 React Router 是版本 4

最佳答案

如果您使用的是react-router v4,您还需要安装react-router-dom。之后,从react-router-dom导入BrowserRouter并将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')
);

Source

关于reactjs - 属性 `history` 在 `Router` 中被标记为必需,但其值为 `undefined` 。在路由器中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43008036/

相关文章:

javascript - 使用 react 路由器在页面部分内导航

reactjs - React Router 不切换到非基本路由

reactjs - Ant Design 自定义选项卡与 React Router v6

javascript - 使用react-router和react-addons-css-transition-group进行页面转换

javascript - 无法读取未定义的属性 'rejected' | ReactJS

javascript - React-Native 的本地 require() 路径

javascript - 为什么 Spread 语法在 nodejs 中抛出错误

javascript - 无法使用 Babel 和 Webpack 在浏览器中加载 ReactJS 资源

javascript - 通过另一个类更改类字符串变量 - 不工作

reactjs - 删除react-router browserHistory更改监听器