【发布时间】:2019-11-12 12:59:00
【问题描述】:
我想知道如何从 mapStateToProps 或任何此类选择器访问 react-router 匹配对象的参数。我想从参数中构建一些东西,并将其作为道具传递给选择器中的展示组件。我有一个接受 built 道具的组件,我希望将一些从反应路由器参数派生的值传递给它。我最好不要将参数作为道具传递下去。
【问题讨论】:
标签: javascript reactjs redux react-redux react-router
我想知道如何从 mapStateToProps 或任何此类选择器访问 react-router 匹配对象的参数。我想从参数中构建一些东西,并将其作为道具传递给选择器中的展示组件。我有一个接受 built 道具的组件,我希望将一些从反应路由器参数派生的值传递给它。我最好不要将参数作为道具传递下去。
【问题讨论】:
标签: javascript reactjs redux react-redux react-router
mapStateToProps 接受second parameter ownProps。一旦你的组件被react-router 初始化,你就会得到match 等属性。
<Route path="/details/:id" component={DetailsPage}
然后
function DetailsPageComp(props) {
...
}
function mapStateToProps(state, { match: { params: {id} } }) {
return {
obj: someSelectorFunction(state, id);
};
}
export default connect(mapStateToProps)(DetailsPageComp);
确定如果你使用<Route render={}版本你需要向下传递match:
<Route render={({ match }) => <DetailsPageComp match={match} />} path="..." />
【讨论】: