Javascript 获取盖茨比中的目标路径
有没有办法在盖茨比网站上找到用户所在页面的路径,并将其存储在Javascript 获取盖茨比中的目标路径,javascript,reactjs,react-router,gatsby,Javascript,Reactjs,React Router,Gatsby,有没有办法在盖茨比网站上找到用户所在页面的路径,并将其存储在const中,以便在用户所在的当前路径旁边进行检查?换句话说,如果他们在/about页面上,并且正在单击链接导航到/contact页面,我需要获取这两个页面的路径,以便可以相互检查。我知道我可以获取当前url的位置.pathname,但是我如何找到他们在单击链接时导航到的路径?,因为您的代码结构不清楚。假设使用一个简单的锚定标记,您可以执行以下操作:- <a href="/new/link" onClick={
const
中,以便在用户所在的当前路径旁边进行检查?换句话说,如果他们在/about
页面上,并且正在单击链接导航到/contact
页面,我需要获取这两个页面的路径,以便可以相互检查。我知道我可以获取当前url的位置.pathname
,但是我如何找到他们在单击链接时导航到的路径?,因为您的代码结构不清楚。假设使用一个简单的锚定标记,您可以执行以下操作:-
<a href="/new/link" onClick={getHref}>New Link</a>
检查这是否适用于您的情况
请原谅任何输入错误,我还没有验证。盖茨比默认在顶级组件(这意味着页面)上公开
道具(因为它从React扩展而来)。您可以根据需要将其传递给子组件,也可以将其存储在常量中或React的状态中
在不了解任何页面结构的情况下,我将提供一些虚拟内容作为示例:
import React from "react"
import { graphql } from "gatsby"
const YourPage = ({ location, data }) => {
console.log('your page is ', location.pathname)
return <div>Dummy content</div>
}
export default Page
export const query = graphql`
query PageQuery {
site {
siteMetadata {
siteURL
}
}
}
`
从“React”导入React
从“盖茨比”导入{graphql}
constyourpage=({location,data})=>{
console.log('您的页面是',location.pathname)
返回虚拟内容
}
导出默认页面
export const query=graphql`
查询页面查询{
场地{
站点元数据{
站点URL
}
}
}
`
您的信息存储在props.location
下,这就是您可以在组件声明中对其进行分解的原因
在上面的例子中,我使用了pathname
property,但是您已经暴露了一堆。查看它,找出哪一个适合您的要求。您是否使用了路线库?如果没有,在链接上使用click事件处理程序有什么害处?我没有使用任何特殊的东西,不。我只需要能够检查目标路径与当前路径的比较。
import React from "react"
import { graphql } from "gatsby"
const YourPage = ({ location, data }) => {
console.log('your page is ', location.pathname)
return <div>Dummy content</div>
}
export default Page
export const query = graphql`
query PageQuery {
site {
siteMetadata {
siteURL
}
}
}
`