如何在 nextjs 中导航而不丢失标头组件的状态

2023-12-15

有没有什么方法可以创建/构建 next.js 应用程序进行导航而不丢失标头组件状态?

让我解释。

我有这样的标题组件:


import { useState } from "react"
import Link from 'next/link'

export const Header = () => {
  const [value, setValue] = useState(1)

  return (
    <header>
      HEADER
      <button onClick={() => setValue(value + 1)}>
        {value}
      </button>
      <ul>
        <li>
          <Link href="/">
            <a>Home</a>
          </Link>
        </li>
        <li>
          <Link href="/test">
            <a>About Us</a>
          </Link>
        </li>
      </ul>
    </header>
  )
}

export default Header

有一个简单的柜台。

我有两页。 指数:

const Home = () => (
  <div className="container">
    <Header />
    <main>
      Index
    </main>
  </div>
)

Test:

import Head from 'next/head'
import Header from '../components/header'

const Home = () => (
  <div className="container">
    <Header />
    <main>
      Test
    </main>
  </div>
)

export default Home

我想在这个页面之间导航而不丢失标题组件的状态。有可能吗?如何实现?


您可以做的一件事是将整个 Next.js 应用程序包装在一个布局组件中,其中包括<Header/>。查看我创建的这个沙箱,看看如何将此模式应用于您问题中的示例:

https://codesandbox.io/s/so-q-63755826-b-forked-7xt6u

查看这篇精彩的文章,它解释了这种模式以及 Next.js 中持久布局的一些其他解决方案:

https://adamwathan.me/2019/10/17/persistent-layout-patterns-in-nextjs/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 nextjs 中导航而不丢失标头组件的状态 的相关文章

  • 在 React Web 应用程序中使用 createjs-soundjs

    我想用https www npmjs com package createjs soundjs https www npmjs com package createjs soundjs在 React Web 应用程序上播放声音 我正常安装了
  • Redux 减速器的副作用

    Redux 减速器应该没有副作用 但是 如果某个操作应该触发浏览器中文件的下载 其中内容基于商店的状态 该怎么办 这当然应该算作副作用吗 像下面这样的方法可以吗 还是我应该寻找替代方法 case SAVE GRID const json s
  • css-loader 不导入 .css 文件返回空对象

    从 css 文件导入样式 返回空对象 看来 css loader 无法正常工作 谁可以帮我这个事 请找到下面的参考文件 index js import React from react import style from header cs
  • 以编程方式更改 Redux-Form 字段值

    当我使用redux formv7 我发现没有办法设置字段值 现在在我的form 我有两个select成分 当第一个时 第二个的值就会很清楚select元件值改变 在类渲染中 div div site div div div div
  • ReactJS 子级 - 过滤掉空值

    我正在渲染我的组件
  • 如何使用 Coffeescript 在 React 中渲染 HTML 标签?

    我目前正在学习 ReactJS 以及如何使用 Ruby on Rails 作为其后端 所以如果我做出愚蠢的假设 我深表歉意 请随意责骂我 我正在关注一个教程 其中作者使用 Coffeescript 而不是 ES6 来处理他的 ReactJS
  • 即使未显式使用“componentWillMount”,“componentWillMount”警告仍可见

    在我的代码中 我没有任何明确的用途componentWillMount 但我在运行时仍然看到一些警告webpack react dom development js 12386 警告 componentWillMount 已重命名 不建议使
  • 带换行符的 React/Momentjs 日期格式

    我有一个日期字符串 我想对其进行格式化 其中数字位于月份下 Jul 6 我尝试了几种不同的方法来添加新行
  • 为什么我的反应路由器链接将我带到页面中间?

    我的网站上有很多链接 但只有一个可以执行此操作 它没有将我带到导航栏的顶部 而是转到内容的中间 知道为什么会这样吗 这是一个页面 其中有一个 map经历一些JSON 这是渲染div页面下方的文本元素 如果重要的话 这是一些可能相关的代码 路
  • axios 请求中未发送正文数据

    我试图通过 axios 请求将数据发送到我的后端脚本 但正文看起来是空的 这是前端发送的请求 axios request method GET url http localhost 4444 next api headers Authori
  • webpack中动态加载外部模块失败

    我正在尝试建立以下架构 一个核心 React 应用程序 它具有一些基本功能 并且能够在运行时加载其他 React 组件 这些额外的 React 组件可以按需加载 并且它们在构建核心应用程序时不可用 因此它们不能包含在核心应用程序的捆绑包中
  • 使用 Reactjs 获取滚动位置

    我使用reactjs并想要处理滚动click event 首先 我呈现了帖子列表componentDidMount 其次 通过click event在列表中的每个帖子上 它将显示帖子详细信息并滚动到顶部 因为我将帖子详细信息放在页面的顶部位
  • 在react-big-calendar中单击事件时添加弹出窗口?

    当单击事件时 我无法将弹出窗口添加到事件中 弹出窗口似乎只显示在事件槽中 而不是显示在事件槽的顶部 此外 由于我为事件创建了一个自定义组件并尝试在自定义组件中实现弹出窗口 因此只有当我单击事件名称时才会显示弹出窗口 这是代码 class C
  • 在 onChange 事件中调用 2 个函数

    我对我的组件有点困惑 我需要从 props 调用 onChange 所以
  • React 应用程序中的 addEventListener 不起作用

    一些背景 我正在尝试消费自定义网络组件在 React 应用程序中并尝试监听来自 Web 组件的事件 我相信您不能只在自定义 Web 组件上以通常的反应方式处理事件 i e
  • ReactJS - Redux Form - 如何根据单选字段元素有条件地显示/隐藏元素?

    我对 Redux 比较陌生 我有一个表单 其中有一些无线电输入 是 或 否 基本上 我想根据该无线电输入选择有条件地显示包含另一个 redux 表单字段的另一个元素 有直接的方法可以做到这一点吗 我想检查一下formProps site v
  • 在react-admin中通过REST API进行基于cookie的身份验证

    我是反应管理新手 我已经阅读了 stackoverflow 中的所有问题 也用谷歌搜索了我的问题 但没有找到任何有用的解决方案 我正在设置 React admin 来替换我的一个项目的现有管理页面 我通过 REST API 使用基于 coo
  • ReactJs 警告:不推荐使用改变“style”。考虑事先克隆它

    我收到以下警告 inWarning div was passed a style object that has previously been mutated Mutating style is deprecated Consider c
  • p5 向量减法“sub”返回错误

    我一直在尝试将 p5 草图上传到 React 构建中 使用react p5 wrapper 我能够成功在屏幕上渲染画布 但是 某些矢量函数会导致错误 var distance this position dist ball position
  • 使用 Flask/WTForms 和 React 进行 CSRF 保护

    有没有人成功地为使用 React 作为受控组件 提交到 Flask 后端 最好使用 WTForms 的表单实现了 CSRF 保护 我看过很多部分答案 其中一个是关于 Django 的 但找不到任何关于 Flask 的明确答案 我的大问题似乎

随机推荐

  • Obj-C 检查照片库中是否已存在图像

    在我的应用程序中 我必须实现保存图像功能 我已经成功地保存了这样的内容 UIImage image UIImage imageNamed actualBackground UIImageWriteToSavedPhotosAlbum ima
  • 替换 JSON 对象中的变量

    我正在编写 JavaScript 代码 我想在其中替换 JSON 对象中的字符串 我的代码如下 var obj name name is name work name is doctor maritial status unmarried
  • CocoaPods 和迦太基

    我有一个关于 Carthage 和 Cocoapods 的项目 它们都有一个共同的依赖项 准确地说是 PureLayout 奇怪 但项目编译良好 没有任何有关类重新声明等的错误 所以问题是 为什么它有效 以及当我调用 PureLayout
  • 当键盘向上移动时,如何使文本字段保持在原位?迅速

    我创建了一个包含 4 个字段和一个按钮的表单 视图层次结构如下所示 主 UIVIew 视图 重命名为 contentView 在 contentView 之上我有 4 个字段和 1 个以编程方式创建的按钮 当 viewDidLoad 被触发
  • 生产环境中 NLog 日志中的行号消失

    我使用 callsite 参数配置了 NLog 布局 使其具有方法名称和行号 并且它在本地运行良好 如下所示 Application Start Global asax cs 33 但它正在改变Application Start没有生产线号
  • 如何使用 XmlWriter 在元素中编写命名空间

    我正在将代码从 vbs 更改为 C 但我在 XMLwriter 方面遇到问题 如何使用 XML write 在 XML file 中获取此类输出 我有这样的代码 using XmlWriter writer XmlWriter Create
  • Phonegap JQM 固定位置页眉/页脚在关闭 iOS 键盘后移动

    我正在尝试在 Phonegap 项目中使用 JQM 在 iOS 应用程序中创建固定页眉和页脚 我有一个使用可折叠 DIV 的页面 并且 DIV 内有一个文本输入 页眉和页脚的一切都很好 直到我展开 DIV 并将某些内容输入到文本字段中 一旦
  • 如何对 AVAssetWriter 输出进行颜色管理

    我无法使渲染视频的颜色与源内容的颜色相匹配 我将图像渲染到 CGContext 中 将支持数据转换为 CVPixelBuffer 并将其作为帧附加到 AVAssetWriterInputPixelBufferAdaptor 中 这会导致我绘
  • 如何使用 JSTL 在 jsp 页面中迭代 ArrayList>

    我正在尝试使用 JSTL 显示数据库中的值 因为它不可重复使用 所以有标签 我一直在根据我之前的问题使用另一个场景 实现 的其他策略 我开始使用 servlet 转到表的视图页面 我无法像该链接中那样使用一维数组 因此我使用了 ArrayL
  • 如何使用传单实现任意地图?

    我想实现一个用于室内定位的android地图 其中有一个建筑物的地图 其中有一些楼层 并且可以看到他在建筑物中的位置 我的问题是关于实施地图 到目前为止 我找到了这样的方法 我想使用 leaflet 它是一个使用 JS 操作地图的库 之后
  • 如何将NLTK块输出到文件?

    我有这个 python 脚本 我使用 nltk 库来解析 标记 标记和分块一些让我们说来自网络的随机文本 我需要格式化并在文件中写入输出chunked1 chunked2 chunked3 这些有类型class nltk tree Tree
  • python 原子数据类型

    写的是herePython 有原子对象类型和引用对象类型 原子对象有 int long complex 当分配原子对象时 它的值被复制 当分配引用对象时 它的引用被复制 我的问题是 那么为什么当我执行下面的代码时我得到 True a 123
  • 多个字典的值的总和

    我正在一个目录上迭代一些代码 我想对我得到的字典中相同键的值进行求和 该代码正在计算一个单词在 csv 文件的列中出现的次数 它对给定文件夹中的每个 csv 文件执行此操作 我想要相同键的附加值的输出 例如 第一个文件中出现了 3 次 狗
  • 是否可以在谷歌表单提交上显示弹出窗口

    我想知道提交谷歌表单后是否可以显示弹出对话框 就在屏幕之前 会显示确认屏幕 表明您的请求已被记录 我检查了这篇文章 其中电子表格的 onOpen 事件用于显示弹出窗口 如何使用 google apps 脚本打开网络浏览器 我可以对电子表格执
  • 当我尝试旋转图像时,我看到了伪影

    这是之前的 http img22 imageshack us img22 5310 beforedes jpgznd 之后 http img189 imageshack us img189 8890 afterr jpg 编辑 现在我看看
  • 在Javafx中动态改变矩形的颜色

    我正在创建两个javafx scene shape Rectangle中的对象GridPane并执行以下操作 rectArray new Rectangle 2 boardGrid setStyle fx background color
  • 如何使用 C# 将配置文件首选项添加到 Chrome for Selenium Grid 2?

    这是我向 Chrome 添加配置文件首选项以进行本地自动测试运行和 TeamCity CI 的方法 Capabilities DesiredCapabilities Chrome var chromeOptions new ChromeOp
  • 无法添加 System.Drawing.dll 引用

    好吧 过去 4 小时我一直在处理这个 bug 但我不知道该怎么办 我正在使用 Visual Studio Community 2017 并打开 Consol App net core 项目 我也在 Windows 8 1 操作系统上工作 我
  • Hibernate/JPA - 注释 bean 方法与字段 [重复]

    这个问题在这里已经有答案了 我有一个关于 Hibernate 使用的简单问题 我不断看到人们以两种方式之一使用 JPA 注释 注释类的字段以及注释相应 bean 上的 get 方法 我的问题如下 使用 Id等JPA注释来注释字段和bean方
  • 如何在 nextjs 中导航而不丢失标头组件的状态

    有没有什么方法可以创建 构建 next js 应用程序进行导航而不丢失标头组件状态 让我解释 我有这样的标题组件 import useState from react import Link from next link export co