Javascript 使用react router dom中的react`withRouter`时在页面上显示URL参数
我有一个简单的组件,当用户重置他们的密码时会显示出来 首先,我为组件设置了路由,然后创建了页面(ResetPassword) 在用户重置密码后,当路由添加了参数时,我想将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
键
和电子邮件
呈现到屏幕上
通过阅读路由器的文档,我认为我可以访问匹配,参数,然后访问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';