fix: internally wrap store subscribe in untrack

pull/13858/head
Dominic Gannaway 2 years ago
parent 185e112377
commit ac982ee840

@ -0,0 +1,5 @@
---
'svelte': patch
---
fix: internally wrap store subscribe in untrack

@ -1,4 +1,5 @@
/** @import { Readable } from './public' */
import { untrack } from '../index-client.js';
import { noop } from '../internal/shared/utils.js';
/**
@ -20,11 +21,11 @@ export function subscribe_to_store(store, run, invalidate) {
}
// Svelte store takes a private second argument
const unsub = store.subscribe(
const unsub = untrack(() => store.subscribe(
run,
// @ts-expect-error
invalidate
);
));
// Also support RxJS
// @ts-expect-error TODO fix this in the types?

@ -1,5 +1,4 @@
<script>
import { untrack } from "svelte";
import { writable, derived } from "svelte/store";
const obj = writable({ a: 1 });
@ -8,9 +7,7 @@
function watch (prop) {
return derived(obj, (o) => {
untrack(() => {
count++;
});
count++;
return o[prop];
});
}

Loading…
Cancel
Save