【问题标题】:How to access route params from a component other then the Router component如何从路由器组件以外的组件访问路由参数
【发布时间】:2016-04-14 10:42:02
【问题描述】:

在 React-router 1.0/2.0 中,可以从 Route 组件以this.props.params 的形式访问路由参数 - 但似乎没有支持从上述 Route 组件中深深包含的组件访问参数的方法。

可以通过context.location 访问数据类型,但这个会引发警告,说明已弃用。

【问题讨论】:

    标签: reactjs react-router


    【解决方案1】:

    从in the latest version of React Router 开始,所有上下文数据都已弃用,取而代之的是this.context.router:

    只有一个名为 router 的对象被添加到上下文中。访问 this.context.history、this.context.location 和 this.context.route 均已弃用。这个新对象包含来自history(例如push、replace)以及setRouteLeaveHook 的可用方法。

    很遗憾,这不包括 location 数据,因此您需要自己将其传递给子(非路由处理程序)组件。

    【讨论】:

    • 是的,谢谢 - 我知道。但 context.router 不提供参数信息
    • @PeterAronZentai 您是对的...您可能需要手动向子组件提供this.props.location,方法是向下传递道具或提供您自己的上下文。
    • 你的路由器链接是404。
    【解决方案2】:

    根据 2.0.0 升级指南,您应该根据需要自行将 params 或 location 传递给子组件。见https://github.com/rackt/react-router/blob/master/upgrade-guides/v2.0.0.md#accessing-location。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-09-25
      • 1970-01-01
      • 2017-05-07
      • 2019-09-22
      • 1970-01-01
      • 2018-08-01
      • 2018-07-04
      • 1970-01-01
      相关资源
      最近更新 更多