我正在跟随一个使用React Router v3的React教程。虽然我正在使用React Router v4版本,但我仍可以从名为Root
的组件传递一个被称为id
的参数到另一个名为User
的组件。
export class Root extends React.Component {
render() {
return(
<div className="container">
<div className="row">
<div className="col-xs-10 col-xs-offset-1">
<Header />
</div>
</div>
<div className="row">
<div className="col-xs-10 col-xs-offset-1">
<hr/>
<Route exact path="/" component={Home}/>
<Route path="/user/:id" component={User}/>
<Route path="/home" component={Home}/>
{/*{this.props.children}*/}
</div>
</div>
</div>
);
}
}
我使用如下代码获取参数{this.props.match.params.id}
,并且它可以正常工作。
export class User extends React.Component {
onNavigateHome() {
this.props.history.push("/home")
}
render() {
return (
<div>
<h3>The User Page</h3>
<p>User ID: {this.props.match.params.id}</p>
<button onClick={() => this.onNavigateHome()} className="btn btn-primary">Go home!</button>
</div>
);
}
}
在这个教程中使用了
{this.props.params.id}
,我现在用{this.props.match.params.id}
是正确的吗?而且match
是什么意思?