#17114·kit

在 `invalidateAll()` 中止正在运行的 `goto()` 后, `navigating` 仍然保持设置

作者: HVossi92创建于 2026年9月15日更新于 2026年9月17日
标签awaiting submitter

描述错误

无效()'或无效()All()'可在客户端导航仍在装载时运行。 导航随后被中止,但`导航'从未被重置。 它一直保持被中止的导航,直到另一个导航完成,因此,任何显示 " 导航 " 的装载状态的都留在该状态下。

调自2.70.3中的 " 包/基特/src/runtime/客户/客户 " :

  • navigate()'在开始航行时设置仓库.通航'/通航.当前'(:1758')。
  • invalidate ()'取出一新符号(:425',`const nav token = (token =-)')。
  • 当导航载荷返回时,navigate()'看到信号已经改变(:1809')。 它称为"nav.reject"(新出错("导航已中止"))"和"还原".
  • 航行导航 ' 的唯一重置发生在完成航行的尾部(:2050'),而提前返回则跳过。 `:1988'是同一签章的第二次提前返回。
  • 复制

一个新鲜的"npx sv"创建了-template minute-types ts"app,其中有@sveltejs/kit 2.70.3和svelte 5.57.0.

`弧/路由/+页.ts':

导出 aync 函数负载({ url}) { 如果( url.searchParams.has('s low')) 等待新的承诺( (r) 确定 Timeout(r, 1000) ); 返回
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?

bash

`弧/道/+页.svelte':

丝绒
<script lang="ts" >
从“ $app/ navigation” 导入{ goto, 无效全部} ;
从“ $app/ state ” 导入 {导航 } ;

函数去 (){
goto ('? slow=1'). 渔获量 ( ( () QQ) ;
setTimeout( () QQ 无效 All( ), 100);
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?
函数去Plain (){
goto ('? slow=1'). 渔获量 ( ( () QQ) ;
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?
</script> (简体中文)

点击\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
点击 <\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
<p id="状态">导航:{navigating.to?}'':'no'}</p>

在Chrimium中点击每个按钮(由Playwright驱动,点击后读作"`#"200 mss后再读作"3 s后")给出:

点击后按下 200 ms 后按下 3 s 后按下 URL |. 导航:是'导航:不是''?慢'=1' |去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去

中止的导航的 URL 从未应用过, 这似乎是正确的 。 问题是 " 航行 " 无限期地停留,直到一些后来的航行完成。

我们在一个应用程序中遇到这个,一个搜索箱在解冻时称去',而一个表格的有效All'则在保存后在搜索负荷内着陆。 应用程序的上载值为“导航”,所以一直保持良好状态。

  • 预期行为

" 航行 " 回到 " 航行 " 中断时的 " 航行 " ,就像完成航行时的 " 航行 " 那样。 或者,任何取代导航系统的东西 都可以接管商店

工作间

无论是哪种方式,在 " 完成 " 承诺达成后,都将航行视为结束:

let end = $state.raw(null); // 生:商店持有对象本身,一个代理从未与它完全相同 $effect( ()) {{ c = 美元导航; 如果(n)n.完成,则((()) . . . . . . .