如何从另一家商店获取商店价值?

luk*_*zyk 17 svelte svelte-store svelte-3

如何从另一家商店获取商店价值? https://svelte.dev/repl/0ab80c2fb8e045958d844bd4b11c04a9?version=3.22.1

在示例中,我inputValstores.js文件中包含一个变量并在其中进行更改
set: (val) => {inputVal=val; set( val );}, and use in fn setToZero

问题:不使用变量如何直接实现inputVal

jos*_*uss 47

用于get(store)访问存储值。

例子:

import {get, writable} from 'svelte/store'

const myStore = writable(41)

const value = get(myStore)
Run Code Online (Sandbox Code Playgroud)

如果您从组件内访问存储.svelte,则有一个快捷方式。只需在商店名称前面加上$,例如。const value = $myStore

  • @lukaszpolowczyk 的链接现在是 https://svelte.dev/docs#run-time-svelte-store-get (6认同)
  • 该解决方案的缺点是:“这通过创建订阅、读取值,然后取消订阅来实现。因此,不建议在热代码路径中使用它。” https://svelte.dev/docs#get (5认同)
  • 替代方案: 1)使用 store.subscribe(callback) ,当值改变时回调将被通知。2)使用派生存储“派生([storeA,storeB,...],回调)”,当任何依赖存储更改时,您的回调可以生成新的(聚合)值 (5认同)