【发布时间】:2018-06-18 03:22:29
【问题描述】:
我有一组容器,我现在已经分离出来了。布局包含应用导航链接。应用包含布局内的内容(实际上是子级)。
这是不使用带有导航链接的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')
);
这一切都有效,直到我将布局与基础 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}>
但是有没有更好的方法来实现这一点?
【问题讨论】:
标签: reactjs react-redux redux-router