useHookAtTopLevel
诊断类别:lint/correctness/useHookAtTopLevel
¥Diagnostic Category: lint/correctness/useHookAtTopLevel
自从:v1.0.0
来源:
¥Since: v1.0.0
Sources:
-
与以下相同:
react-hooks/rules-of-hooks
¥Same as:
react-hooks/rules-of-hooks
强制所有 React 钩子都从顶层组件函数调用。
¥Enforce that all React hooks are being called from the Top Level component functions.
要了解为什么需要这个,请参阅 https://react.nodejs.cn/docs/hooks-rules.html#only-call-hooks-at-the-top-level
¥To understand why this required see https://react.nodejs.cn/docs/hooks-rules.html#only-call-hooks-at-the-top-level
¥Examples
¥Invalid
code-block.js:3:9 lint/correctness/useHookAtTopLevel ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
⚠ This hook is being called conditionally, but all hooks must be called in the exact same order in every component render.
1 │ function Component1({ a }) {
2 │ if (a == 1) {
> 3 │ useEffect();
│ ^^^^^^^^^
4 │ }
5 │ }
ℹ For React to preserve state between calls, hooks needs to be called unconditionally and always in the same order.
ℹ See https://react.nodejs.cn/docs/hooks-rules.html#only-call-hooks-at-the-top-level
code-block.js:6:5 lint/correctness/useHookAtTopLevel ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
⚠ This hook is being called conditionally, but all hooks must be called in the exact same order in every component render.
4 │ }
5 │
> 6 │ useEffect();
│ ^^^^^^^^^
7 │ }
8 │
ℹ Hooks should not be called after an early return.
1 │ function Component1({ a }) {
> 2 │ if (a != 1) {
│
> 3 │ return;
│ ^^^^^^^
4 │ }
5 │
ℹ For React to preserve state between calls, hooks needs to be called unconditionally and always in the same order.
ℹ See https://react.nodejs.cn/docs/hooks-rules.html#only-call-hooks-at-the-top-level
¥Valid
¥Related links