【发布时间】:2022-07-03 04:46:32
【问题描述】:
我通常使用以下内容重定向到任何页面,而不使用 Sveltekit 中的 window.location.href
import { goto } from '$app/navigation';
const goSomeWhere = () :void => {
goto('/')
}
但是我们如何让它回到上一页呢?我应该只使用香草 javascript 回去吗?
【问题讨论】:
标签: sveltekit
我通常使用以下内容重定向到任何页面,而不使用 Sveltekit 中的 window.location.href
import { goto } from '$app/navigation';
const goSomeWhere = () :void => {
goto('/')
}
但是我们如何让它回到上一页呢?我应该只使用香草 javascript 回去吗?
【问题讨论】:
标签: sveltekit
我找到了更好的解决方案。而不是像@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。
【讨论】:
在我们的 SvelteKit 项目中,我们有时会像下面的示例那样导航到上一页
import { goto } from '$app/navigation';
import { page } from '$app/stores';
const goSomeWhereBack = () => {
goto($page.url.pathname.substring(0, $page.url.pathname.lastIndexOf('/')));
}
【讨论】:
你可以像history.back();这样使用javaScript历史对象
【讨论】: