Detect and warn about native async function components in development (#27031)
Adds a development warning to complement the error introduced by https://github.com/facebook/react/pull/27019. We can detect and warn about async client components by checking the prototype of the function. This won't work for environments where async functions are transpiled, but for native async functions, it allows us to log an earlier warning during development, including in cases that don't trigger the infinite loop guard added in https://github.com/facebook/react/pull/27019. It does not supersede the infinite loop guard, though, because that mechanism also prevents the app from crashing. I also added a warning for calling a hook inside an async function. This one fires even during a transition. We could add a corresponding warning to Flight, since hooks are not allowed in async Server Components, either. (Though in both environments, this is better handled by a lint rule.)
A
Andrew Clark committed
5c8dabf8864e1d826c831d6096b2dfa66309961a
Parent: 47385f8
Committed by GitHub <noreply@github.com>
on 7/2/2023, 2:44:41 AM