我对 react-router-dom
(v4.3.1) 中 Route
的使用有两个疑问:
我们什么时候在
Route
中使用component
vsrender
:<Route exact path='/u/:username/' component={ProfileComponent} /> <Route exact path='/u/:username/' render={() => <ProfileComponent />} />
- 如何通过两种方式访问URL中的变量
username
?
最佳答案
当你传递一个组件给component
prop时,组件会获取props.match.params
对象中的路径参数,即props.match .params.username
在你的例子中:
class ProfileComponent extends React.Component {
render() {
return <div>{this.props.match.params.username}</div>;
}
}
当使用 render
属性时,可以通过给 render
函数的属性访问路径参数:
<Route
exact
path='/u/:username/'
render={(props) =>
<ProfileComponent username={props.match.params.username}/>
}
/>
当你需要来自包含路由的组件的一些数据时,你通常使用 render
属性,因为 component
属性没有提供将额外属性传递给的真正方法组件。
关于javascript - Reactjs - 路由中的 `component` 与 `render`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51226685/