Javascript 如何在gatsby的布局文件中获取路径名
我使用的是Javascript 如何在gatsby的布局文件中获取路径名,javascript,reactjs,react-router,gatsby,Javascript,Reactjs,React Router,Gatsby,我使用的是gasby,这里的主文件总是layout.js,它是所有文件的父文件。既然它是一个父文件,那么我如何才能在其中获取位置propsthis.props.location.pathname 这是我的布局组件 class Layout extends Component { componentWillMount() { console.log(this.props, 'dssssssssssssf') } render() { const { children
gasby
,这里的主文件总是layout.js
,它是所有文件的父文件。既然它是一个父文件,那么我如何才能在其中获取位置propsthis.props.location.pathname
这是我的布局组件
class Layout extends Component {
componentWillMount() {
console.log(this.props, 'dssssssssssssf')
}
render() {
const { children } = this.props
return(
<StaticQuery
query={graphql`
query SiteTitleQuery {
site {
siteMetadata {
title
}
}
}
`}
render={data => (
<>
<div>
<Provider store={store}>
{children}
</Provider>
</div>
</>
)}
/>
)
}
}
Layout.propTypes = {
children: PropTypes.node.isRequired
}
export default Layout.
类布局扩展组件{
组件willmount(){
console.log(this.props'dssf')
}
render(){
const{children}=this.props
返回(
(
{儿童}
)}
/>
)
}
}
Layout.propTypes={
子项:PropTypes.node.isRequired
}
导出默认布局。
如盖茨比文件所述:
在v1中,布局组件可以访问历史记录、位置和匹配
道具。在v2中,只有页面可以访问这些道具;如果你需要这些
布局组件中的道具,从页面中传递它们
这意味着您需要转到呈现布局组件的位置,通常是index.js或app.js页面,并将位置道具直接传递给它:
import React from "react"
import Layout from "../components/layout"
export default props => (
<Layout location={props.location}>
<div>Hello World</div>
</Layout>
)
从“React”导入React
从“./组件/布局”导入布局
导出默认道具=>(
你好,世界
)
然后您可以在布局中使用它。您还可以阅读更多。你好,我有个问题。如何在盖茨比中创建动态路线?如果你知道我会提出一个问题