【发布时间】:2017-03-14 09:01:34
【问题描述】:
我正在尝试使用哈希历史在浏览器中开始使用 react router,我从版本 3 的指南中复制了此代码。
import React from "react";
import ReactDOM from "react-dom";
import { Router, Route, Link, hashHistory } from 'react-router';
const App = React.createClass({
render() {
return (
<div>
<h1>App</h1>
<ul>
<li><Link to="/about">About</Link></li>
<li><Link to="/inbox">Inbox</Link></li>
</ul>
{this.props.children}
</div>
)
}
})
const About = React.createClass({
render() {
return <h3>About</h3>
}
})
const Inbox = React.createClass({
render() {
return (
<div>
<h2>Inbox</h2>
{this.props.children || "Welcome to your Inbox"}
</div>
)
}
})
const Message = React.createClass({
render() {
return <h3>Message {this.props.params.id}</h3>
}
})
var history = hashHistory;
console.log(history);
ReactDOM.render((
<Router history="{history}">
<Route path="/" component={App}>
<Route path="about" component={About} />
<Route path="inbox" component={Inbox}>
<Route path="messages/:id" component={Message} />
</Route>
</Route>
</Router>
),
document.getElementById('app-root'));
当我打开文档时出现这些错误
警告:失败的道具类型:无效的道具
history类型为string提供给Router,预期object。
在那之前我登录了history,它看起来像一个对象
未捕获的错误:您提供了使用历史 v4.x 或 v2.x 及更早版本创建的历史对象。这个版本的 React Router 仅 与 v3 历史对象兼容。请切换到历史 v3.x。
我已经安装了react-router@3和history@3,我可以确认
+-- react-router@3.0.2 无关
我在列表中找不到history,但如果我转到目录我可以看到package.json
"version": "3.3.0"
【问题讨论】:
标签: javascript reactjs react-router