【发布时间】:2015-08-17 20:53:08
【问题描述】:
按照docs, 我有这个代码:
var React = require('react');
var Router = require('react-router');
var Route = Router.Route;
var RouteHandler = Router.RouteHandler;
var Link = Router.Link;
var About = React.createClass({
render: function () {
return <h2>About</h2>;
}
});
var Inbox = React.createClass({
render: function () {
return <h2>Inbox</h2>;
}
});
var Home = React.createClass({
render: function () {
return <h2>Home</h2>;
}
});
var Message = React.createClass({
componentDidMount: function () {
// from the path `/inbox/messages/:id`
var id = this.props.params.id;
console.log('id',id);
},
render () {
return (
<div>
<h1>Message {this.props.params.id}</h1>
</div>
);
}
});
var App = React.createClass({
render () {
return (
<div>
<h1>App</h1>
<ul>
<li><Link to="/">Home</Link></li>
<li><Link to="about">About</Link></li>
<li><Link to="inbox">Inbox</Link></li>
<li><Link to="message" params={ {id: 'myid'} }>Inbox message</Link></li>
</ul>
<RouteHandler {...this.props}/>
</div>
);
}
});
// declare our routes and their hierarchy
var routes = (
<Route handler={App}>
<Route name="home" path="/" handler={Home}/>
<Route name="about" path="/about" handler={About}/>
<Route name="inbox" path="/inbox" handler={Inbox}>
<Route name="message" path="/messages/:id" handler={Message}/>
</Route>
</Route>
);
Router.run(routes, Router.HashLocation, (Root, state) => {
var params = state.params;
React.render(<Root params={params} />, document.body);
});
我想知道为什么如果我点击 In box message 链接我会看到 收件箱而不是消息
怎么了?
【问题讨论】:
-
您的控制台中有任何内容吗?如果消息无法呈现,它看起来就像是您的收件箱呈现,因为它们是嵌套的。
-
@PhilVarg 不,控制台中没有 id。
标签: reactjs react-router