Javascript 使用react router dom中的react`withRouter`时在页面上显示URL参数

Javascript 使用react router dom中的react`withRouter`时在页面上显示URL参数,javascript,reactjs,routes,react-router-dom,Javascript,Reactjs,Routes,React Router Dom,我有一个简单的组件,当用户重置他们的密码时会显示出来 首先,我为组件设置了路由,然后创建了页面(ResetPassword) 在用户重置密码后,当路由添加了参数时,我想将url参数键和电子邮件呈现到屏幕上 通过阅读路由器的文档,我认为我可以访问匹配,参数,然后访问url中的键,并将它们呈现到屏幕上。然而,这是行不通的 知道为什么吗 这是我的密码: // @flow import React from 'react'; import { compose } from 'ramda'; import

我有一个简单的组件,当用户重置他们的密码时会显示出来

首先,我为组件设置了路由,然后创建了页面(ResetPassword)

在用户重置密码后,当路由添加了参数时,我想将url参数
电子邮件
呈现到屏幕上

通过阅读路由器
的文档,我认为我可以访问
匹配
参数,然后访问url中的键,并将它们呈现到屏幕上。然而,这是行不通的

知道为什么吗

这是我的密码:

// @flow
import React from 'react';
import { compose } from 'ramda';
import { withRouter } from 'react-router-dom';
import Helmet from 'react-helmet';
import featureRoute from '../components/Decorators/featureRoute';

type Props = {
  match: {
    params: {
      email: string,
      key: any
    }
  },
  location: {
    pathname: string
  }
};

export const ResetPassword = ({
  match: {
    params: { email, key }
  },
  location: { pathname }
}: Props) => {
  const text = 'view page';

  return (
    <>
      <Helmet title="Page title" titleTemplate="%s" />
      <div className="p-page">
        <div>{text}</div>
        <div>{email}</div>
        <div>{key}</div>
        <div>{pathname}</div>
      </div>
    </>
  );
};

export default compose(
  featureRoute(),
  withRouter
)(ResetPassword);


我看不到在你的路线中任何地方定义了参数。我希望看到像这样的东西

path: '/password/reset/update/:email/:key',
这可能是问题的原因

此外,
withRouter
通常用于类组件。假设您在这里使用的是功能组件,您可以使用

这个钩子是进口的

import { withRouter } from 'react-router-dom';
对于这种情况,将按如下方式使用:

export const ResetPassword = () => {
    const { email, key } = useParams();
    const text = 'view page';

如果您仍然需要路径名,可以从中获取。

感谢您的回复。好的,我一直在阅读文档。我误解了我的本意。我需要的是
查询字符串参数
,而不是
参数
。如果我理解正确,这些与参数不同,对吗?你的回答已经帮了我很多,不过谢谢你。。。我现在需要弄清楚如何获取
queryparams
。不用担心。查询字符串参数与useParams钩子返回的参数不同。React Router在这里有一个示例,说明如何通过useLocation钩子获取查询字符串参数:
export const ResetPassword = () => {
    const { email, key } = useParams();
    const text = 'view page';