“history” prop 在 “Router” 中被标记为必需项,但它的值为“undefined”。
“history” prop 在 “Router” 中被标记为必需项,但它的值为“undefined”。
我刚开始接触ReactJs。这是我的代码:
var React = require('react'); var ReactDOM = require('react-dom'); var {Route, Router, IndexRoute, hashHistory} = require('react-router'); var Main = require('Main'); ReactDOM.render( , document.getElementById('app'));
我用webpack编译了它。还将Main组件添加到我的aliases中。控制台显示了以下错误:
我还阅读了以下链接:
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。
admin 更改状态以发布 2023年5月25日
你使用的是哪个版本的React Router?版本4改变了传递browserHistory类的方式,变成了传递一个browserHistory实例,详见新documentation中的示例(点击链接查看)。
这个改变已经引起了很多自动升级的用户的注意;"任何时候都有可能"推出迁移文档。
你需要把下面这段代码添加到顶部:
import { createBrowserHistory } from 'history' const newHistory = createBrowserHistory();
和
如果你正在使用react-router v4,你需要同时安装react-router-dom。安装完成后,从react-router-dom中导入BrowserRouter,然后用BrowserRouter替换Router。看起来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((), document.getElementById('root') );