React Router:无法读取未定义的属性“pathname”
2017-04-25
199710
我刚刚开始学习 React,并被这个错误卡住了。
Uncaught TypeError: Cannot read property 'pathname' of undefined at new Router
这是我的代码:
var React = require('react');
var ReactDOM = require('react-dom');
var { Route, Router, IndexRoute } = require('react-router');
var hashHistory = require('react-router-redux')
var Main = require('./components/Main');
ReactDOM.render(
<Router history={hashHistory}>
<Route path="/" component={Main}>
</Route>
</Router>,
document.getElementById('app')
);
我遵循的教程使用 React-Router 2.0.0,但我的桌面上使用的是 4.1.1。我尝试搜索更改,但未能找到有效的解决方案。
"dependencies": {
"express": "^4.15.2",
"react": "^15.5.4",
"react-dom": "^15.5.4",
"react-router": "^4.1.1",
"react-router-dom": "^4.1.1",
"react-router-redux": "^4.0.8"
3个回答
我收到了上述错误消息,这是非常神秘的。 我尝试了提到的其他解决方案,但它不起作用。
事实证明,我不小心忘记将
prop包括在
&lt; link/&gt;
组件。
即使
&lt; link/&gt;
不需要
to
prop,您只需添加并编写它带有空的报价 - &gt;例如
&lt;链接到=“” /&gt; < /code>。这将解决问题!
希望错误消息更清晰。一个简单的
所需的prop“未找到”
或类似的东西会有所帮助。希望这可以节省某些时间遇到相同问题的其他人。
Brennan Cheung
2018-04-28
错误是因为 React Router v4 中的 api 完全不同。 你可以试试这个:
import React from 'react';
import ReactDOM from 'react-dom';
import {
BrowserRouter as Router,
Route
} from 'react-router-dom';
const Main = () => <h1>Hello world</h1>;
ReactDOM.render(
<Router>
<Route path='/' component={Main} />
</Router>,
document.getElementById('app')
);
你可以查看 文档 以了解它现在是如何工作的。
这里 我有一个带有路由动画的 repo。
此外, 这里 你可以找到一个现场演示。
Arnold Gandarillas
2017-04-25
原来 import matter 和 Router 的顺序应该在前
不正确
import { BrowserRouter as Route, Router, Routes } from "react-router-dom";
正确
import { BrowserRouter as Router, Routes, Route } from "react-router-dom";
michael
2022-10-07