我有一组容器,我现在已经分开了。布局包含应用导航链接。应用程序包含布局中的内容(实际上是子级)。
这是不使用Layout
导航链接时代码的外观。
export const App = hot(module)(() => (
<div>
<Switch>
<Route exact path="/login" component={ Login } />
<Route path="/csp" component={ CspApp } />
</Switch>
<ToastContainer transition={ Flip }/>
</div>
));
这位于ReactDOM.render
:
ReactDOM.render(
<Provider store={store}>
<ConnectedRouter history={history}>
<App />
</ConnectedRouter>
</Provider>,
document.getElementById('root')
);
这一切都有效,直到我将布局与 base 分开CspApp
。
我试图添加一个布局,所以它看起来像这样:
export const App = hot(module)(() => (
<div>
<Switch>
<Route exact path="/login" component={ Login } />
<Layout> <----- Expecting props
<Route path="/csp" component={ CspApp } />
</Layout>
</Switch>
<ToastContainer transition={ Flip }/>
</div>
));
我相信这会起作用,但非常正确的是,它期望顶部导航的道具能够正确呈现。
如何正确地将道具传递给这个?我可以通过将 store 一个一个地传递给组件来做到这一点:
<Layout prop1={store.getState().prop1} action1={store.getState().action1}>
但是有没有更好的方法来实现这一点?