当前位置: 首页 > 知识库问答 >
问题:

访问react-router渲染函数中的URL参数

艾昊明
2023-03-14

这是一个快速的问题,但到目前为止我还没有找到解决方案:

我想访问URL参数与react-router v4使用渲染方法。到目前为止,我发现的一切只是像这样传递组件:

<代码>

但是我想使用这样的渲染方法:

<代码>

但是,当我尝试在我的组件中使用props.match.params.id访问id参数时,匹配道具是未定义的。

你知道我如何使用渲染函数并仍然访问url参数吗?

共有2个答案

楚流觞
2023-03-14

您可以使用location.search在URL中获取该查询字符串,并从location.pathname

<Route
      path="/about"
      render={({ location, history }) => (
           <div>
                 <p>We are at: {location.pathname}</p>
                 <p>Query string is: {location.search}</p>
           </div>
      )}
/>
贺恩
2023-03-14

您需要将道具从Route传递到Child

<Route path="/:id" render={(props) => (<Wrapper> <Child {...props} /> </Wrapper>)} />

或:

<Route path="/:id" render={(props) => (<Wrapper> <Child id={props.match.params.id} /> </Wrapper>)} />
 类似资料:
  • //文章页面 //应用 //导航栏页面 **我试图使用变量“name”传递URL参数,但当我访问ArticlePage时,我得到404:Not Found(我的NotFound页面的内容)。我试图使用ArticlePage中的props(match)获取“name”变量的值,但无法呈现它。反应相当新,任何提示或解决方案都将不胜感激。我正在使用React v6**

  • 我有一个react组件,它加载在路由上 我需要从components构造函数中的url访问一个参数 我该怎么做呢? 我可以这样访问它吗:

  • 本文向大家介绍React-Router怎么获取URL的参数?相关面试题,主要包含被问及React-Router怎么获取URL的参数?时的应答技巧和注意事项,需要的朋友参考一下 在之前的版本中,可以通过 this.props.location.query.bar 进行获取 在 v4 中,通过 this.props.location.search 获取,不过需要进行处理

  • 我使用的是React路由器V4,我有此路由器的配置: 是可选的语言参数,它应该与模式匹配,例如、或不匹配。例如,应用程序利用这些路由: 另外,我还有一个额外的组件,在其中我定义了函数的路由: 因此,我希望实现的结果是,只接受允许的语言代码(和空参数),而不接受的代码将被重定向到组件。 可能吗?如何实现这一目标? 非常感谢这个例子

  • 问题内容: 我将2个值传递给子组件: 要显示的对象列表 删除功能。 我使用.map()函数显示对象列表(如在React教程页面中给出的示例中所示),但是该组件中的按钮在render上触发该函数(不应在渲染时触发)。我的代码如下所示: 我的问题是:为什么函数在渲染时触发,如何使其不触发? 问题答案: 因为您是在调用该函数而不是将函数传递给onClick,所以将该行更改为此: 在ES6中引入了一个称为

  • 问题内容: 我正在使用新的React Context API而非Redux开发一个新应用,并且在使用之前,例如,当我需要获取用户列表时,我只是调用我的操作,但是现在使用React Context,我的操作可以在内部进行。我的使用者位于我的渲染函数中,这意味着每次调用我的渲染函数时,它将调用我的操作以获取用户列表,这不好,因为我将执行许多不必要的请求。 那么,我怎么只能一次调用动作,例如in 而不是