我正在使用React-Router 4创建一些路由。(它使用官方文档中的
这个很好用。我想不出如何将
但是这会返回错误:
PrivateRoute
组件,但这与本问题无关。)<HashRouter>
<Switch>
<PrivateRoute exact path='/' component={Wrapper(Home)} />
<Route exact path='/login' render={(props) => <Login authenticate={this.authenticate} {...props} />} />
<PrivateRoute exact path='/clients' component={Wrapper(Clients)} />
</Switch>
</HashRouter>
如您所见,Home
和Clients
组件都被包裹在HOC中。目前这个操作并没有实际作用:
const Wrapper = (Page) => {
return (props) => (
<div className="page">
<p>This should be on every page</p>
<Page {...props} />
</div>
);
}
这个很好用。我想不出如何将
Login
路由与同一个HOC包装在一起。我已经尝试过了。<Route exact path='/login' render={(props) => Wrapper(<Login authenticate={this.authenticate} {...props} />)} />
但是这会返回错误:
Route.render(): 必须返回一个有效的 React 元素(或 null)。