Amo*_*mos 14 reactjs react-router-dom
我有一条像这样的路线
<Route path="/search/:slug"><SearchPage /></Route>
Run Code Online (Sandbox Code Playgroud)
在我的 React Router 中。SearchPage 是一个useParams()
使用react-router-dom
.
// SearchPage.js
import React from 'react';
import { useParams } from 'react-router-dom';
export function SearchPage(props) {
const { slug } = useParams();
console.log(slug)
// ...do other stuff
}
Run Code Online (Sandbox Code Playgroud)
但是,当我导航到 时/search/foo#bar
,SearchPage 组件仅foo
在slug
. 我的组件是否可以接收完整的foo#bar
,或者更好的是,单独foo
接收bar
?
Pra*_*man 20
您需要使用useLocation
钩子并从那里获取hash
。第一步是useLocation
从以下位置导入react-router-dom
以下位置导入:
import useLocation from "react-router-dom";\n
Run Code Online (Sandbox Code Playgroud)\n在组件函数中,使用:
\nconst { hash } = useLocation();\n
Run Code Online (Sandbox Code Playgroud)\n来自文档:
\n\n\n\n该
\nuseLocation
钩子返回location
表示当前 URL 的对象。您可以将其视为每当 URL 更改时useState
都会返回新值的 a 。location
这可能非常有用,例如在您希望每当加载新页面时使用网络分析工具触发新的 \xe2\x80\x9cpage view\xe2\x80\x9d 事件的情况下
\n
归档时间: |
|
查看次数: |
20446 次 |
最近记录: |