javascript - 如何在反应路由器 dom 中定义以下模式的路由
问题描述
我正在尝试为以下路线制作页面:
/password?token=479wasc8-8ffe-47a6-fatw-624e9d2c323a&user=e238bc4c-cf79-4cc3-b4a5-8fe7ewrta54a9w8a5
我最初的解决方案如下:
<Route exact path='/password?token=:token&user=:user' component={Password}/>
但我想我在这里遗漏了一些重要的东西。我尝试了各种来源,但没有找到任何接近我的问题的东西。
解决方案
Password
组件可以利用钩子useLocation
来读取查询字符串:
<Route path='/password' component={Password} />
import { useLocation } from 'react-router-dom'
const useQuery = () => {
return new URLSearchParams(useLocation().search)
}
const Password = () => {
const query = useQuery()
return (
<div>
<p>{query.get('token')}</p>
<p>{query.get('user')}</p>
</div>
)
}
推荐阅读
- message - 删除不和谐代码上的自己/个人聊天记录
- matlab - powf() 函数的奇怪行为
- python - 在 App Engine Python 中动态向 Google Datastore 实体添加属性(灵活的环境)
- reactjs - 如何使用 Rust 在 webview 中加载 WASM 模块?
- ruby - 为什么我会收到缺少必需键 [:id] 的 UrlGenerationError?
- clojure - 从调用 CLJS 函数的 CLJ 发出 Hiccup 控件
- c# - 在图形类中使用未分配的局部变量
- mysql - 从另一个选择语句更新表
- libevent - EventFD 可以与 libEvent2 一起使用吗?
- c# - 为什么我使用反射设置属性值的代码不起作用?