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 trying to close file twice in strict mode #1615

Merged
merged 1 commit into from
Apr 18, 2024
Merged

Fix trying to close file twice in strict mode #1615

merged 1 commit into from
Apr 18, 2024

Conversation

axelboc
Copy link
Contributor

@axelboc axelboc commented Apr 18, 2024

Following the stale state issue in myHDF5 that was fixed in #1568, I started seeing HDF5 warnings in development when navigating between files: the h5wasm provider was trying to close the previous file twice.

That's because when React in strict mode re-renders a second time to detect side effects, it doesn't update states (i.e. setPrevApi(api) has no effect) so prevApi !== api evaluates to true again and prevApi.cleanUp() is called again.

Now that HDF5 errors are thrown instead of logged as warnings, they really stand out in the console. So I thought I'd try to get rid of them.

None of the React-y solutions (which involve either a key or a useEffect with a clean-up function) are satisfactory, as explained in #1568. In the end, all I want is to call the clean-up function when the useMemo callback is re-invoked, which can be done by just storing the previous API instance in a ref instead of a state.

@axelboc axelboc requested a review from loichuder April 18, 2024 11:42
@axelboc axelboc merged commit fb8c6c1 into main Apr 18, 2024
8 checks passed
@axelboc axelboc deleted the fix-clean-up branch April 18, 2024 13:09
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.

1 participant