I am wondering if i would be able to access my Svelte store values from a plain .js file.
I am trying to write functions returning a dynamic value based on a store value, to import them in any component. But in a plain .js file I can't just access the store value with the $ sign..
Quick exemple of a basic function that uses a store value and could be used on multiple components:
//in .svelte
function add() {
$counter = $counter + 1;
}
EDIT: rephrasing a bit
EDIT: Found a solution but i don't really know if it's really optimized..
//in .js file
import { get } from "svelte/store";
import { counter } from "./stores";
export function add() {
var counterRef = get(counter);
counter.set(counterRef + 1);
}
In addition to rixo's answer, a better way to implement add
is to use the store's update
method:
import { counter } from "./stores";
export function add() {
counter.update(n => n + 1);
}
You could also create a custom store that implemented that logic.