我正在使用具有嵌套路由的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.children
和React.createElement()
来覆盖传递给子组件的道具,但我相信这不是最干净的方法。
或者你认为在子路由中通过id(可能是多次)重新获取对象是否可以?也许react-router的onEnter钩子有帮助吗?
我觉得我错过了一些关键的拼图,以合理的方式处理这个问题...感谢您的启发! :)