SvelteKit 如何使用 Goto 通过客户端路由器重新加载当前页面?

Mat*_*sen 4 svelte sveltekit

看起来,goto在 SvelteKit 中,当指示重定向到当前网页时,它没有执行任何操作:

<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>
Run Code Online (Sandbox Code Playgroud)

另外,我尝试过invalidate、 以及invalidate后面加一个goto,以及goto添加假查询参数,但都不会导致页面刷新。

我可以让它工作的唯一方法是通过调用location.reload(),但这将绕过 SvelteKit 的客户端路由并返回到服务器,通过网络重新加载整个应用程序。

H.B*_*.B. 9

你不应该使用goto,而是使用invalidateAll

如果您的页面似乎未正确更新,则您没有使用反应式,即某些值设置一次,并且在重新加载data时不会更新。data