Next.js + React 返回上一页

Posted

技术标签:

【中文标题】Next.js + React 返回上一页【英文标题】:Next.js + React Go back to the previous page 【发布时间】:2019-01-21 09:51:55 【问题描述】:

我使用路由 next.js。如何实现按钮返回和返回上一页?就像浏览器上的按钮一样

【问题讨论】:

您可能需要查看Next.js getting started 页面。 查看但没有找到解决方案。我试图这样做,但得到了不断的页面重定向。 export const BackUrl = (url) => (  

Nazad

)
Client-Side History Support 状态:When you hit the Back button, it navigates the page to the index page entirely via the client; next/link does all the location.history handling for you.You don't need to write even a single line of client-side routing code.。所以你不需要onClick 属性和window.history.back() 【参考方案1】:

编辑:在此答案首次发布 2 年后,路由器方法现在为 well documented。这是直接来自文档的代码:

import  useRouter  from 'next/router'

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

  return <span onClick=() => router.back()>Click here to go back</span>

原始答案:

有一个未记录的 Router.back 方法 (see source) 只执行 window.history.back()

你应该有这样的组件

import Router from 'next/router'

export default function BackButton() 
    return (
        <div onClick=() => Router.back()>Go Back</div>
    )

【讨论】:

值得指出的是,如果您在 CSS 中为 :hover 分配了元素,由于 onClick 在移动设备上的触发方式,您可能会在移动设备上遇到奇怪的行为。 这只是隐藏了完全相同的代码行。 @Clément 的链接来自 next 7,v8 也一样:github.com/zeit/next.js/blob/v8.0.4/packages/next-server/lib/… 嗯...我不认为这很友好... @AnatoleLucet 非常好的一点,如前所述,这是官方的 nextjs 示例。我知道 nextjs 团队喜欢这种反馈,也许告诉他们,他们会更新文档。至于这个答案,我不想偏离官方文档以保持简单

以上是关于Next.js + React 返回上一页的主要内容,如果未能解决你的问题,请参考以下文章

js返回上一页并刷新的几种方法

html中需要点击两次“返回上一页”按钮,才能实现返回上一页

js_返回上一页(兼容苹果手机)

html 返回上一页,并且刷新

功能:返回上一页 4种实现方式

JavaScript返回到上一页的三种方法