【问题标题】:Reactjs - `component` vs `render` in RouteReactjs - 路线中的“组件”与“渲染”
【发布时间】:2018-12-16 00:35:01
【问题描述】:

我对@9​​87654322@(v4.3.1)中Route的用法有两个疑问:

  1. 我们什么时候在Route 中使用componentrender

    <Route exact path='/u/:username/' component={ProfileComponent} />
    <Route exact path='/u/:username/' render={() => <ProfileComponent />} />
    
  2. 如何通过两种方式访问​​URL中的变量username

【问题讨论】:

    标签: javascript reactjs routes react-router-dom


    【解决方案1】:

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

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

    使用render props时,可以通过render函数赋予的props访问路径参数:

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

    当您需要来自包含您的路由的组件的一些数据时,您通常使用 render 道具,因为 component 道具没有提供将额外道具传递给组件的真正方法。

    【讨论】:

    • 最后一句话是所有其他解释都忽略的关键部分。谢谢!
    猜你喜欢
    • 2020-03-23
    • 2021-09-30
    • 2020-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-20
    • 2023-04-10
    • 1970-01-01
    相关资源
    最近更新 更多