Skip to content
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 useSyncExternalStore not working with function values #3633

Merged
merged 1 commit into from
Jul 26, 2022

Conversation

marvinhagemeister
Copy link
Member

When the value returned by the getSnapshot argument is a function we were calling that immediately instead of passing the function as a value around. This was caused by useState having the updater functionality, where a function is interpreted as being an updater function which allows you to optionally cancel a state update. But we don't want that here, we want the function itself to be preserved as a value.

Fixes #3632

@coveralls
Copy link

coveralls commented Jul 26, 2022

Coverage Status

Coverage remained the same at 99.458% when pulling 482d3f6 on snapshot-function-values into 1a134b3 on master.

@github-actions
Copy link

github-actions bot commented Jul 26, 2022

Size Change: +6 B (0%)

Total Size: 43.5 kB

Filename Size Change
compat/dist/compat.js 3.67 kB +2 B (0%)
compat/dist/compat.module.js 3.65 kB +2 B (0%)
compat/dist/compat.umd.js 3.73 kB +2 B (0%)
ℹ️ View Unchanged
Filename Size Change
debug/dist/debug.js 3 kB 0 B
debug/dist/debug.module.js 3 kB 0 B
debug/dist/debug.umd.js 3.08 kB 0 B
devtools/dist/devtools.js 230 B 0 B
devtools/dist/devtools.module.js 238 B 0 B
devtools/dist/devtools.umd.js 305 B 0 B
dist/preact.js 4 kB 0 B
dist/preact.min.js 4.03 kB 0 B
dist/preact.module.js 4.02 kB 0 B
dist/preact.umd.js 4.06 kB 0 B
hooks/dist/hooks.js 1.31 kB 0 B
hooks/dist/hooks.module.js 1.33 kB 0 B
hooks/dist/hooks.umd.js 1.4 kB 0 B
jsx-runtime/dist/jsxRuntime.js 317 B 0 B
jsx-runtime/dist/jsxRuntime.module.js 327 B 0 B
jsx-runtime/dist/jsxRuntime.umd.js 395 B 0 B
test-utils/dist/testUtils.js 444 B 0 B
test-utils/dist/testUtils.module.js 444 B 0 B
test-utils/dist/testUtils.umd.js 521 B 0 B

compressed-size-action

@JoviDeCroock JoviDeCroock merged commit e201caf into master Jul 26, 2022
@JoviDeCroock JoviDeCroock deleted the snapshot-function-values branch July 26, 2022 14:43
This was referenced Aug 4, 2022
JoviDeCroock added a commit that referenced this pull request Sep 2, 2022
JoviDeCroock added a commit that referenced this pull request Sep 2, 2022
* backport #3615

* backport #3633

* backport #3643

* backport #3655

* backport #3663

* backport #3690

* backport useState optim
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

useSyncExternalStore should not execute a function returned by getSnapshot
3 participants