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

Clarify that you can't return early between Hooks #1350

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Clarify that you can't return early between hooks
...Otherwise you get an error like `Uncaught Error: Rendered fewer hooks than expected. This may be caused by an accidental early return statement.` in `finishHooks`.
  • Loading branch information
jamesgpearce authored Oct 31, 2018
commit b6b66fe30de7eb1e149e42635af7e0c054b9106b
2 changes: 1 addition & 1 deletion content/docs/hooks-rules.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ Hooks are JavaScript functions, but you need to follow two rules when using them

### Only Call Hooks at the Top Level

**Don't call Hooks inside loops, conditions, or nested functions.** Instead, always use Hooks at the top level of your React function. By following this rule, you ensure that Hooks are called in the same order each time a component renders. That's what allows React to correctly preserve the state of Hooks between multiple `useState` and `useEffect` calls. (If you're curious, we'll explain this in depth [below](#explanation).)
**Don't call Hooks inside loops, conditions, or nested functions, nor after conditional return statements.** Instead, always use Hooks at the top level of your React function and make sure every one is called. By following this rule, you ensure that the same number of Hooks are called in the same order each time a component renders. That's what allows React to correctly preserve the state of Hooks between multiple `useState` and `useEffect` calls. (If you're curious, we'll explain this in depth [below](#explanation).)

### Only Call Hooks from React Functions

Expand Down