在Gatsby中,如何识别当前呈现的页面是否为404



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

相关内容

  • 没有找到相关文章

最新更新