react-rules-of-hooks
注意: 此规则包含在以下规则集中:
react
fresh
在
deno.json
中启用完整集合:{ "lint": { "rules": { "tags": ["react"] // ...or "fresh" } } }
使用 Deno CLI 启用完整集合:
deno lint --rules-tags=react # or ... deno lint --rules-tags=fresh
确保在 React/Preact 组件中正确调用 hooks。它们必须在组件的顶层调用,而不是在条件语句或循环内部。
无效示例:
// 错误:在条件内部调用
function MyComponent() {
if (condition) {
const [count, setCount] = useState(0);
}
}
// 错误:在 for 循环内部调用
function MyComponent() {
for (const item of items) {
const [count, setCount] = useState(0);
}
}
// 错误:在 while 循环内部调用
function MyComponent() {
while (condition) {
const [count, setCount] = useState(0);
}
}
// 错误:在条件之后调用
function MyComponent() {
if (condition) {
// ...
}
const [count, setCount] = useState(0);
}
有效示例:
function MyComponent() {
const [count, setCount] = useState(0);
}