【问题标题】:How to navigate in nextjs without losing state of header component如何在 nextjs 中导航而不丢失标题组件的状态
【发布时间】:2020-12-24 14:12:00
【问题描述】:

有什么方法可以在不丢失标题组件状态的情况下创建/构造 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>
)

测试:

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

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

export default Home

我想在此页面之间导航而不会丢失状态 i 标题组件。有可能,怎么做?

【问题讨论】:

    标签: reactjs react-router next.js router server-side-rendering


    【解决方案1】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2017-12-20
      • 2020-11-26
      • 2012-01-09
      • 1970-01-01
      • 2015-02-27
      • 2018-05-22
      • 2017-10-30
      • 1970-01-01
      相关资源
      最近更新 更多