当指示重定向到当前网页时,SvelteKit中的goto
似乎不做任何事情:
<script>
import { goto, invalidate } from '$app/navigation';
function reloadPage() {
const thisPage = window.location.pathname;
console.log('goto ' + thisPage);
goto(thisPage);
}
</script>
<button on:click={() => reloadPage()}>
Reload
</button>
此外,我还尝试了invalidate
,以及invalidate
,然后是goto
,以及goto
,并添加了假查询参数,它们都不会导致页面刷新。
我可以让它工作的唯一方法是通过调用location.reload()
,但是这将绕过SvelteKit的客户端路由并返回到服务器,通过网络重新加载整个应用程序。
您不应该使用goto
,而应该使用invalidateAll
。
如果你的页面没有出现正确的更新,你没有使用data
反应性,即一些值设置一次,不更新时,data
重新加载。
这是一个解决办法,通过链接goto
,但必须有一个更好的方法:
function reloadPage() {
const thisPage = window.location.pathname;
console.log('goto ' + thisPage);
goto('/').then(
() => goto(thisPage)
);
}