javascript-Reactjs-`component` vs`render`在路线

对于来自react-router-dom(v4.3.1)的Route的使用,我有两个疑问:

>我们何时在Route中使用组件vs渲染:

<Route exact path='/u/:username/' component={ProfileComponent} />
<Route exact path='/u/:username/' render={() => <ProfileComponent />} />

>如何通过两种方式访问​​URL中的变量用户名?

解决方法:

当您将组件传递给prop组件时,组件将在props.match.params对象中获取路径参数,即示例中的props.match.params.username:

class ProfileComponent extends React.Component {
  render() {
    return <div>{this.props.match.params.username}</div>;
  }
}

使用渲染道具时,可以通过提供给渲染函数的道具来访问路径参数:

<Route
  exact
  path='/u/:username/'
  render={(props) => 
    <ProfileComponent username={props.match.params.username}/>
  }
/>

当需要来自包含路线的组件中的一些数据时,通常会使用渲染道具,因为组件道具没有提供将其他道具传递到组件的真正方法.

上一篇:javascript-有条件地渲染时,不会触发React onClick事件


下一篇:javascript-reactjs意外令牌’<'