我使用了React-Router,编码了这个
<Router>
<div className="app">
<div className="wrapper">
<AppHeaderMain />
<Switch>
<Route exact path="/" component={Home} />
<Route path="/list/" component={List} />
<Route path="/about/" component={About} />
<Route component={NotFound} />
</Switch>
<div className="menu">
<ul>
<li><NavLink exact to="/">List</NavLink></li>
<li><NavLink to="/about/">About</NavLink></li>
</ul>
</div>
</div>
</div>
</Router>
&#13;
我有一个问题,是否可以根据Rout路径加载另一个组件,例如:
path="/" - load <AppHeaderMain />
path="/list/" - load <AppHeaderSubpage />
&#13;
我知道我可以将AppHeader组件插入到每个组件中,但我不想重复一些额外的代码来实现这一点。 我的意思是条件包括(加载)组件。 这是一个好习惯吗?也许我必须完全按照我写的方式编写:包含在每个单独的组件中?
答案 0 :(得分:2)
我认为这是一个构成问题。为什么不创建工厂功能。例如:
function routeHandlerWithAppHeader(Component) {
return (props) => (
<div>
<AppHeaderMain />
<Component {...props}/>
</div>;
);
}
然后使用:
<Route exact path="/" component={routeHandlerWithAppHeader(Home)} />