-
Notifications
You must be signed in to change notification settings - Fork 46.9k
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
Remove <React.unstable_ConcurrentMode /> element type #15532
Remove <React.unstable_ConcurrentMode /> element type #15532
Conversation
Could we preserve this(concurrent mode) and just allow it be used in root? By the way, could you share more info about why it's impossible to be used in a particular subtree without opting in the entire root? |
@NE-SmallTown It's not impossible, but it creates weird edge cases that we'd prefer not to support, given that we haven't found a compelling enough use case for it. |
Use createSyncRoot instead.
24c6edf
to
e34a55f
Compare
Hi! at @tedconf we use many roots, and are slowly migrating things to be concurrent-safe. For us, it's not practical to upgrade every single root to Is this something you'd considered? |
@VinSpee, yea that use case was the original purpose but it turns out that the semantics doesn’t quite make sense in the mixed world. We can’t guarantee exactly how the changes in the top of the root flows into the subtree. Similarly if something suspends inside the subtree, that can trigger a boundary in the outside. So it adds a lot of complexity that you are probably better equipped to handle in user space. However you can still add StrictMode in subtrees to get warnings and some dev mode things that get your ready for concurrent mode. There is also the createSyncRoot api that has some of the same semantics as concurrent mode. Then once you have one root that is complete you can just upgrade that one. |
We decided to remove this because we're not convinced it's practical to opt a particular subtree into Concurrent Mode without opting in the entire root. The recommendation is to use
createRoot
instead.