You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
No Hook can be called in async Components. You can call it in a sync Component that is used in the Server environment i.e. useId can be used in shared Components.
I don't understand the logic for preventing any hooks that can run in a Server Component to be called in async components, especially for a hook as benign as useId 🤔
An explanation would be welcome, I might have missed something here.
In #27045 the
eslint-plugin-react-hooks
has been modified to disallow the use of any hooks inasync
components, justified by this sentence:However, some hooks can be called in async components, namely
useId
. Or at least the documentation does not mention it1.React version: 18.3.1
eslint-plugin-react-hooks: 5.0.0
Steps To Reproduce
useId
Error: React Hook "useId" cannot be called in an async function. react-hooks/rules-of-hooks
The current behavior
ESLint throws an error when an async component uses
useId
.The expected behavior
No ESLint error.
Footnotes
The documentation for React 19 does not mention it as well. ↩
The text was updated successfully, but these errors were encountered: