如何从父路由中的redux存储中获取对象并使其可用于子路由?

时间:2017-01-24 12:08:45

标签: reactjs redux react-router react-redux

我正在使用具有嵌套路由的React,Redux和React路由器。说,我有以下路由声明和(容器)组件:

路线

<Route path="/" component={App}>
    <Route path="/parts">
        <Route path=":partId" component={Part}>
            <Route path="edit" component={EditPart}/>
        </Route>
    </Route>
</Route>

部分

const Part = ({ part, children }) => (
    <div>
        <h1>{part.title}</h1>
        {children}
    </div>
)

const mapStateToProps = (state, props) => state.parts.find(part => part.id === props.params.partId)

export default connect(
    mapStateToProps
)(Part)

避免重复子组件mapStateToProps()中Part的EditPart函数中的步骤以获取part对象的最佳方法是什么?有没有办法将整个对象从Part传递到EditPart

有人建议在父组件中使用React.childrenReact.createElement()来覆盖传递给子组件的道具,但我相信这不是最干净的方法。

或者你认为在子路由中通过id(可能是多次)重新获取对象是否可以?也许react-router的onEnter钩子有帮助吗?

我觉得我错过了一些关键的拼图,以合理的方式处理这个问题...感谢您的启发! :)

0 个答案:

没有答案