Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/426.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在gatsby的布局文件中获取路径名_Javascript_Reactjs_React Router_Gatsby - Fatal编程技术网

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
,它是所有文件的父文件。既然它是一个父文件,那么我如何才能在其中获取位置props
this.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
从“./组件/布局”导入布局
导出默认道具=>(
你好,世界
)

然后您可以在布局中使用它。您还可以阅读更多。

你好,我有个问题。如何在盖茨比中创建动态路线?如果你知道我会提出一个问题