我在使用react hooks的reach router上遇到了一点问题。我需要在浏览器中捕获路由的参数,我尝试使用Web of reach路由器中的本机文档的道具,但这并没有给我参数,路由是这样的:http://localhost:8080/home?init=true
如何捕获该变量“init”?
Reach Router有一个useLocation钩子,你可以使用:
import { useLocation } from "@reach/router"
// then
const location = useLocation()
在<code>位置。搜索是搜索字段,包含URL中的所有查询参数(查询字符串)。在您的示例中,/home?init=true
将返回位置。搜索:“?init=true”
,这是一个查询字符串。
您可以使用查询字符串库(yarn add query-string
)来解析以下内容:
import { parse } from "query-string"
// then
const searchParams = parse(location.search)
这将给你对象{init:“true”}
你也可以使用queryString.parse('foo=true',{parseBooleans:true})
解析布尔值
所以完整的例子应该是
import { useLocation } from "@reach/router"
import { parse } from "query-string"
// and
const location = useLocation()
const searchParams = parse(location.search) // => {init: "true"}
很快,我们大多数人每次都会重做这个,所以最好创建一个自定义钩子来做这件事。
// A custom hook that builds on useLocation to parse
// the query string for you.
export const useQuery = queryParam => {
const search = new URLSearchParams(useLocation().search);
return search.get(queryParam);
};
对于react应用程序,我有以下嵌套路由/组件的基本结构:
我有一个路由器像下面: 以下是我想要实现的目标: 如果未登录,将用户重定向到 如果用户在登录后试图访问,请将其重定向到root 因此,现在我尝试在
本文向大家介绍如何获取路由传过来的参数?相关面试题,主要包含被问及如何获取路由传过来的参数?时的应答技巧和注意事项,需要的朋友参考一下 如果使用方式传入的参数使用 接收 如果使用方式传入的参数使用接收 参考:路由组件传参
我正在尝试使用React-Relay路由器学习React-Relay和GraphQL,但无法在我的路由中获得参数。我的困难在于“/Maps/:userID”路线。 这是我的路由器: 这是我的中继容器和根查询: 这里是我的react组件中的一个位置,我在route参数中插入了userID。我正在使用react router的browserHistory。“1”是我的测试用户ID。 这是我的模式的根查
本文向大家介绍详解react如何在组件中获取路由参数,包括了详解react如何在组件中获取路由参数的使用技巧和注意事项,需要的朋友参考一下 路由参数 假如我们有很多 list 页面,这些页面除了动态内容不同,其他的页面部分都相同,这个时候需要怎么配置路由和组件呢? 这种场景就需要用到路由的参数功能,增加一条包含参数的路由配置。 注意 path 属性中的 :id 就是该路由的参数( param )。