Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 基于路由器路径的条件加载组件_Javascript_Reactjs_React Router - Fatal编程技术网

Javascript 基于路由器路径的条件加载组件

Javascript 基于路由器路径的条件加载组件,javascript,reactjs,react-router,Javascript,Reactjs,React Router,我用了一个反应路由器,编码了这个 名单 关于 我认为这是一个组成问题。为什么不创建一个工厂函数呢。例如: function routeHandlerWithAppHeader(Component) { return (props) => ( <div> <AppHeaderMain /> <Component {...props}/> </div>; ); } 功能路由HandlerW

我用了一个反应路由器,编码了这个


  • 名单
  • 关于

我认为这是一个组成问题。为什么不创建一个工厂函数呢。例如:

function routeHandlerWithAppHeader(Component) {
  return (props) => (
    <div>
      <AppHeaderMain />
      <Component {...props}/>
    </div>;
  );
}
功能路由HandlerWithAppHeader(组件){
返回(道具)=>(
;
);
}
然后使用:

<Route exact path="/" component={routeHandlerWithAppHeader(Home)} />


您可以在
中添加
开关
路由
,并决定如何渲染它。但是Krasimir的答案是一个更好的实践。是的,它是有效的,但我仍然必须用另一个AppHeaderSub重复这个函数,可能会将参数从{this.routeHandlerWithAppHeader(About,Sub)}传递到AppHeader,例如。