【问题标题】:Going back to the previous page with 'goto' / Sveltekit navigation使用“goto”/Sveltekit 导航返回上一页
【发布时间】:2022-07-03 04:46:32
【问题描述】:

我通常使用以下内容重定向到任何页面,而不使用 Sveltekit 中的 window.location.href


import { goto } from '$app/navigation';

const goSomeWhere = () :void => {
    goto('/')
}

但是我们如何让它回到上一页呢?我应该只使用香草 javascript 回去吗?

【问题讨论】:

    标签: sveltekit


    【解决方案1】:

    我找到了更好的解决方案。而不是像@Jarduilno 建议的那样回到父路径。我设法通过使用“afterNavigate”返回到上一页。这更可靠,因为并非每个传入链接都在同一个父路径中。

    import { goto, afterNavigate } from '$app/navigation';
    
    let previousPage : string;
    afterNavigate((navigaton) => :void {
       previousPage = navigaton.from.pathname
    }) // 'navigaton' returns the 'from' URL object, assign to value, and use it later in a function. ex) goto(previousPage)
    

    请注意,如果没有上一页,则返回 undefined,因此最好设置一个后备 url。

    【讨论】:

      【解决方案2】:

      在我们的 SvelteKit 项目中,我们有时会像下面的示例那样导航到上一页

      import { goto } from '$app/navigation';
      import { page } from '$app/stores';
      
      const goSomeWhereBack = () => {
          goto($page.url.pathname.substring(0, $page.url.pathname.lastIndexOf('/')));
      }
      

      【讨论】:

      • 对我来说效果很好。
      【解决方案3】:

      你可以像history.back();这样使用javaScript历史对象

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2023-02-18
        • 1970-01-01
        • 1970-01-01
        • 2012-01-02
        • 2022-10-05
        • 2014-08-03
        • 1970-01-01
        相关资源
        最近更新 更多