首页 > 解决方案 > 为什么我们必须指定与 React Router DOM 中的其他 props 不同的组件 prop?

问题描述

当我们在使用 render prop 时,为什么我们必须将组件 prop 指定为:

component: Component

所有其他道具都使用常规的解构语法:

exact

这是否特定于 React Router DOM,或者这通常是您在 React 中传递组件的方式?如果是这样,为什么我们必须使用这种语法?

标签: javascriptreactjsreact-router-dom

解决方案


我相信这里的原因是因为 React Router 较少用作父组件,而更多用作重定向库。将您的组件插入到组件中会进行标准渲染,其中会注入查询字符串、历史记录和参数;然而,这不是唯一的选择。

<Route path={this.props.match.url} exact render={() => 
   <Admin location={this.props.location} history={this.props.history}/>
}/>

Route 的目的不是应用样式、道具或通用父属性,而是使用注入的道具和路径条件专门渲染子级。


推荐阅读