如何显示特定页面组的特定标题。盖茨比

Posted

技术标签:

【中文标题】如何显示特定页面组的特定标题。盖茨比【英文标题】:How can I display a specific header for a specific group of pages. Gatsby 【发布时间】:2021-08-31 07:01:13 【问题描述】:

在我的 Gatsby 网站上,我有一个用于大多数页面的主标题,以及一个用于特定页面的 SpecialHeader

在我的Layout 文件中,包含页眉、子页面、页脚等,我添加了以下条件:

        location.pathname === ('/special-page/' || '/special-page') ? (
          <SpecialHeader currentPathname=location.pathname />
        ) : (
          <MainHeader currentPathname=location.pathname />
        )

我只想为包含路径/special-page 的页面显示SpecialHeader。有没有更好的方法来做到这一点?

会有额外的子页面 (/special-page/foo) 需要相同的标题。如果只存在/special-page 路径,是否可以显示特殊标题?例如/special-page*

我希望我说得通。提前感谢您的任何建议。

【问题讨论】:

【参考方案1】:

假设您使用的是react-router-dom 可选路径参数有一个功能:

可选参数
<Route path="/to/page/:pathParam?" component=MyPage />
多个可选参数
<Route path="/to/page/:pathParam1?/:pathParam2?" component=MyPage />

【讨论】:

查看这个答案***.com/questions/35604617/…【参考方案2】:

我通过删除正斜杠并获取路径中的第一个单词找到了解决方案。如果路径名称匹配,我应该正确的标题。

例如:

const stripPath = location.pathname.split('/')[1];
const isSpecialPath = stripPath === 'special-page' ? true : false;

isSpecialPath ? (
  <SpecialHeader currentPathname=location.pathname />
  ) : (
  <MainHeader currentPathname=location.pathname />
)

【讨论】:

以上是关于如何显示特定页面组的特定标题。盖茨比的主要内容,如果未能解决你的问题,请参考以下文章

有机组“上下文”

GraphQL 检索特定块的数据 - Gatsby + Wordpress

盖茨比创建页面

盖茨比类别 slugs 在动态类别页面中不起作用

颤振:如何显示用户特定的页面?

javascript 盖茨比:单独的帖子和页面