gpt4 book ai didi

javascript - Reactjs - 路由中的 `component` 与 `render`

转载 作者:搜寻专家 更新时间:2023-11-01 04:12:44 24 4
gpt4 key购买 nike

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

  1. 我们什么时候在Route中使用component vs render:

    <Route exact path='/u/:username/' component={ProfileComponent} />
    <Route exact path='/u/:username/' render={() => <ProfileComponent />} />
  2. 如何通过两种方式访问​​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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com