web-dev-qa-db-ja.com

外部のjsファイルからSvelteストアにアクセスすることは可能ですか?

私はSvelteプレーン.jsファイルから値を保存できるかどうか疑問に思っています。

ストアの値に基づいて動的な値を返す関数を記述して、任意のコンポーネントにインポートしようとしています。しかし、プレーンな.jsファイルでは、$記号でストア値にアクセスすることはできません。

ストア値を使用し、複数のコンポーネントで使用できる基本的な関数の簡単な例:

//in .svelte

function add() {
    $counter = $counter + 1;
 }

編集:少し言い換える

編集:解決策を見つけましたが、本当に最適化されているかどうかはわかりません。

//in .js file

import { get } from "svelte/store";
import { counter } from "./stores";

export function add() {
    var counterRef = get(counter);
    counter.set(counterRef + 1);
}
8
Joseph Allain

それは正確にあなたが求めたものではありません(インポート)が、この方法は同じ目的を果たします:ストアを引数として渡すので、.jsにストアをインポートする必要はありません

import {get} from 'svelte/store'
export function add(yourStore) {
   let _yourStore = get(yourStore)
   yourStore.set(_yourStore + 1)
}

次に、ストアをSvelteコンポーネントにインポートする必要があります。
。jsでのストアのインポートは考慮せず、コンポーネントでのインポートのみを考慮します。

0
comte