在src/pages
中,我为每个文档设置了一个404.js页面"添加404页";。在这个文件中,我调用我的Layout
组件,并传递location
道具。
在我的Layout.js文件中,我试图根据当前页面是否为404
来有条件地渲染一些组件。在我的测试中,位置对象不会为此呈现布尔值,例如使用浏览器asdsada
:进行测试
hash: ""
host: "localhost:8000"
hostname: "localhost"
href: "http://localhost:8000/asdsada"
key: "initial"
origin: "http://localhost:8000"
pathname: "/asdsada"
port: "8000"
protocol: "http:"
search: ""
state: null
在阅读以下内容后,我找不到这样做的方法:
- 如何在盖茨比的布局文件中获取路径名
- 在盖茨比中获取目标路径[重复]
- 如何在React/Gastby类组件中获取当前url
- Gatsby链接通过道具将上一页的位置.路径传递到下一页
- 如何基于当前url导入组件
- 在盖茨比的404页面上显示URL
在Gatsby中,有没有一种方法可以识别当前呈现的页面是否是404页面,这样我就可以对组件进行三进制运算?
您应该将src/pages/404.js
中的布尔值传递给Layout
,如:
import React from "react"
import Layout from "../components/layout"
const NotFoundPage = () => (
<Layout is404Page={true}>
<div>Your Content</div>
</Layout>
)
export default NotFoundPage