sveltekit浅层路由中的pushState根本没有设置page.state.cart

问题描述 投票:0回答:1

我有一个 sveltekit 应用程序。在一页 -cart.svelte- 中,我按一个按钮转到我选择订单是取货还是送货的页面 -ordertype.svelte- 但我丢失了购物车内容,因为它是一家小型商店。我正在尝试使用 PushState() 导航到订单类型页面而不触发重新加载 - 这样我就可以保留购物车存储 - 根据文档,pushState 是正确的工具。当我单击该按钮时,它将导航到 ordertype 页面,但 $page.state.cart 是一个空对象。如何在不运行重新加载的情况下进行导航? 2.0 套件中引入的 ShallowRouting

..立即订购 无需重新加载的订单类型路径

并且 gotoordertype 函数代码是我尝试 pushState 的地方 异步函数 gotoordertype(){

   sessionStorage.setItem("cart", JSON.stringify(cart.checkout()) )
  
    pushState('/ordertype', {
        cart: JSON.stringify(cart.checkout())
    })
   //goto('/ordertype')

}

我测试了与 data-sveltekit-replacestate 的链接,它确实有效。它导航时不会丢失购物车内容,我导航到订单类型,购物车内容仍在内存中,但我也需要运行属于订单类型页面的表单操作。所以对我来说是不可能的。我需要一个按钮,我可以在其中指向正确的 formactions,但现在我无法使用精彩的 data-sveltekit-replacestate??

如何将购物车保留在内存中并防止在导航到订单类型页面后重新运行加载函数? 如何将购物车内容从第一页传递到第二页,我是否需要显式编写 $page.state.cart 并在 ordertype.svelte 中获取它。我该怎么做?

sveltekit pushstate
1个回答
0
投票

如果我正确理解了你的问题,那么我认为使用渐进增强应该可以解决它,即使用:

import { enhance } from '$app/forms'
<form method="POST" use:enhance>
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.