如何使用 next/router 在下一个 js 中返回上一页?

How to go back to previous page in next js using next/router?

我正在为我的应用程序使用下一个 js,但我在路由到应用程序的上一个路由时遇到了一些问题。我知道路由器函数 back() 类似于 window.history.back(),我想在单击 Link 时返回路由,如果之前的 link 不是来自我的应用程序或为空,我想默认转到主页。

我在我的 React 应用程序中使用了像 react-router-last-location 这样的库,但我想看看在下一个 js 中是否有更好的方法通过 next/router。

这是我的示例代码:

<div className={styles['icon-container']}>
  <Link  href="/"><a>
     <img src="icon.svg"></img>
  </a></Link>
</div>

如果我在 href 输入中使用 router.back(),页面甚至在加载之前就自动返回,我该如何解决这个问题?

<Link> 无法离开您的应用程序。 (但 router.back() 可以)

你不能在代码中直接使用router.back(),你需要做类似的事情:

<img onClick={() => router.back()} src="icon.svg" />

<Link> 没有 onClick 属性.

import { useRouter } from 'next/router'

export default function Page() {
  const router = useRouter()

  return (
    <button type="button" onClick={() => router.back()}>
      Click here to go back
    </button>
  )
}

信息来源here