facebook/react

useMemo gets called twice with Suspense

Ephem opened this issue · 1 comments

Ephem commented

Do you want to request a feature or report a bug?

Possible (future) bug

What is the current behavior?

I have a feeling this might be a known tradeoff because of how the reconciler throws away an unfinished subtree when a Promise is thrown, but since it surprised me and wasn't documented I felt I should report it anyway. If it is known/intended, feel free to close.

If a component with useMemo re-renders because of a thrown Promise (Suspense), function is not memoized and gets called twice.

If the current behavior is a bug, please provide the steps to reproduce and if possible a minimal demo of the problem. Your bug will get fixed much faster if we can run your code and it doesn't have dependencies other than React. Paste the link to your JSFiddle (https://jsfiddle.net/Luktwrdm/) or CodeSandbox (https://codesandbox.io/s/new) example below:

https://codesandbox.io/s/72o4mznvr1

What is the expected behavior?

useMemo gets called once?

Which versions of React, and which browser / OS are affected by this issue? Did this work in previous versions of React?

16.7.0-alpha.2

Yes, this is a known limitation / design choice.