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";\nRun Code Online (Sandbox Code Playgroud)\n在组件函数中,使用:
\nconst { hash } = useLocation();\nRun 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 次 |
| 最近记录: |