【问题标题】:how to reference a reactive $ variable inside a svelte store?如何在苗条的商店中引用反应式 $ 变量?
【发布时间】:2021-07-21 09:00:04
【问题描述】:

我会简要介绍一下。

我有一个反应变量,每次用户将产品添加到购物车时都会更新。

let cartItems = []
$: cartLength = cartitems.length;

现在我想将购物车项目的长度放入不同组件的图标中。所以我尝试创建它并与组件的其余部分共享。

import { writable } from 'svelte/store';
export const cartItemsLength = writable("");

在我的 caritems 组件中。将商店导入我的组件后,我尝试更新商店:

cartItemsLength.update(value=>{
value =  cartLength
})

但它每次都在我的开发工具中显示未定义。我试过 $cartLength {$cartLength} 那么,我的问题是,如何将 cartLength 变量分配给 store 更新函数中的值?

【问题讨论】:

    标签: javascript svelte svelte-3


    【解决方案1】:

    可写存储的更新函数应该有一个返回值在存储中设置。

    https://svelte.dev/docs#writable

    // File cartitems.svelte
    
    import { writable } from 'svelte/store';
    
    export const cartItemsLength = writable(0);
    
    let cartItems = [];
    $: cartLength = cartItems.length;
    
    // 1. use store's update function
    cartItemsLength.update(value=> {
      return cartLength;
    });
    
    // 2. or you can just use $store if in .svelte script
    $cartItemsLength = cartLength;
    

    【讨论】:

    • 谢谢。我错过了退货部分。
    猜你喜欢
    • 2019-10-22
    • 2021-06-04
    • 2021-12-28
    • 2021-05-11
    • 2023-02-21
    • 2021-03-30
    • 2020-06-10
    • 1970-01-01
    • 2022-11-11
    相关资源
    最近更新 更多