-
Notifications
You must be signed in to change notification settings - Fork 34
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
useAtomsDevtools causes react warnings with latest version of jotai #158
Comments
Thanks for reporting! Could you please help me reproduce this? It seems to work fine for me locally in our Storybook playground. I'm using |
Sure, created a reproduction branch at https://github.com/axel-havukangas-tt/jotai-devtools/tree/158-repro where I updated to jotai version 2.9.1. Interestingly, in the jotai-devtools sandbox, the warning message doesn't appear for all atoms. But at least appears when pressing the "TOGGLE RESULT" button: Screen.Recording.2024-08-02.at.7.56.13.movOur app has a lot of async initialisations, so might be that the warning messages actually only comes in situations where an async operation updates an atom. |
Investigated the issue a bit more, and seems to be somehow related to https://github.com/jotaijs/jotai-devtools/blob/main/src/utils/useAtomsSnapshot.ts#L110 where the hooks state update is not deferred when the store subscription triggers a callback. Not sure what change has caused the warnings to trigger here though. |
Okay, after some more investigation it seems that the culprit is the different implementations of the Not sure what the reasoning is behind the extended store subscription in the v2 implementation, but one possible solution would be to skip the atom read events in the |
If I can get some confirmation that my investigation is sane, and this is a reasonable approach to fix the issue, then I could make a PR next week that would add some event filtering to the store subscriptions so that the atomsSnapshot isn't unnecessarily updated on atom reads (which obviously shouldn't affect the returned value). |
Thank you so much for your thorough investigation, @axel-havukangas-tt! I believe we can completely remove this line, as it seems unnecessary now. Initially, I thought it was required for TimeTravel to sync the history for async atoms, but with Would you like to open a PR? |
Yeah, if it seems like the whole Created a PR at #160 |
After upgrading to jotai version 2.9.0, which introduces the new store implementation, I'm getting react warnings for any components that uses the
useAtom
jotai hook.The error seems to be caused by the use of
useAtomsDevtools
in ourAtomsDevtools
component, which apparently seems to trigger an update when atoms connect to the store.No issues with jotai version 2.8.4
The text was updated successfully, but these errors were encountered: