首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Reach路由器上获取参数

如何在Reach路由器上获取参数
EN

Stack Overflow用户
提问于 2019-10-22 03:15:20
回答 2查看 5.1K关注 0票数 14

我在使用react钩子的reach路由器上遇到了一点问题。我需要在浏览器中捕获路由的参数,我尝试使用web of reach路由器中本地文档的道具来获取路由参数,但这没有给我提供参数,路由是这样的:http://localhost:8080/home?init=true

如何捕获变量"init"?

EN

Stack Overflow用户

回答已采纳

发布于 2020-05-02 01:22:59

Reach路由器有一个可以使用的useLocation钩子:

代码语言:javascript
运行
复制
import { useLocation } from "@reach/router"
// then 
const location = useLocation()

location.search中是搜索字段,包含来自您的URL的所有查询参数(查询字符串)。在您的示例中,/home?init=true将返回location.search: "?init=true",这是一个查询字符串。

您可以使用query-string库(yarn add query-string)来解析以下内容:

代码语言:javascript
运行
复制
import { parse } from "query-string"
// then
const searchParams = parse(location.search)

这将为您提供对象{init: "true"},您还可以使用queryString.parse('foo=true', {parseBooleans: true})解析布尔值

所以完整的例子是

代码语言:javascript
运行
复制
import { useLocation } from "@reach/router"
import { parse } from "query-string"
// and
const location = useLocation()
const searchParams = parse(location.search) // => {init: "true"}
票数 17
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58492797

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档