【问题标题】:How to access react router match object from mapstatetoprops如何从 mapstatetoprops 访问反应路由器匹配对象
【发布时间】:2019-11-12 12:59:00
【问题描述】:

我想知道如何从 mapStateToProps 或任何此类选择器访问 react-router 匹配对象的参数。我想从参数中构建一些东西,并将其作为道具传递给选择器中的展示组件。我有一个接受 built 道具的组件,我希望将一些从反应路由器参数派生的值传递给它。我最好不要将参数作为道具传递下去。

【问题讨论】:

    标签: javascript reactjs redux react-redux react-router


    【解决方案1】:

    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);
    

    确定如果你使用&lt;Route render={}版本你需要向下传递match

    <Route render={({ match }) => <DetailsPageComp match={match} />} path="..." />
    

    【讨论】:

      猜你喜欢
      • 2021-11-25
      • 1970-01-01
      • 2017-10-27
      • 1970-01-01
      • 2020-05-11
      • 2017-08-06
      • 1970-01-01
      • 1970-01-01
      • 2017-07-10
      相关资源
      最近更新 更多