-
-
Notifications
You must be signed in to change notification settings - Fork 4.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix: better interop of $state
with actions/$:
statements
#10543
Conversation
Ensure update methods of actions and reactive statements work with fine-grained `$state` by deep-reading them. This is necessary because mutations to `$state` objects don't notify listeners to only the object as a whole, it only notifies the listeners of the property that changed. fixes #10460 fixes simeydotme/svelte-range-slider-pips#130
🦋 Changeset detectedLatest commit: e94df0f The changes in this PR will be included in the next version bump. This PR includes changesets to release 1 package
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
|
||
p = parents['init_update']; | ||
assert.deepEqual(p.value, { foo: 'kid' }); | ||
assert.equal(p.updates.length, 2); | ||
|
||
p = parents['init_mutate']; | ||
assert.deepEqual(p.value, { foo: 'kid' }); | ||
assert.equal(p.updates.length, 1); | ||
assert.equal(p.updates.length, 2); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This test is from #8992 and was (turns out, wrongfully) changed when moving to proxies in #9826 . This uncovered that using $.proxy
inside svelte/legacy
could also have caused these kinds of problems this PR fixes in some situations, but it shouldn't matter anymore now that deeply reactive state is properly handled in the places where it matters.
Ensure update methods of actions and reactive statements work with fine-grained
$state
by deep-reading them. This is necessary because mutations to$state
objects don't notify listeners to only the object as a whole, it only notifies the listeners of the property that changed.fixes #10460
fixes simeydotme/svelte-range-slider-pips#130
Before submitting the PR, please make sure you do the following
feat:
,fix:
,chore:
, ordocs:
.Tests and linting
pnpm test
and lint the project withpnpm lint