(一)只在最顶层使用 Hook
记住别在循环,条件或嵌套函数中定义即可,因为hook它必须按顺序执行,它对state的控制才正确。
(二)只在 React 函数中调用 Hook:
不要在普通的 JavaScript 函数中调用 Hook,即只能在React的函数组件中调用,另外也可以在自定义hook中调用其它的hook.
二、安装ESLink插件:
为了保证Hook开发中符合以上2个规则要求,可以在开发工具中安装: eslint-plugin-react-hooks
的 ESLint 插件来强制执行这两条规则,即:
npm install eslint-plugin-react-hooks --save-dev
// 你的 ESLint 配置
{
"plugins": [
// ...
"react-hooks"
],
"rules": {
// ...
"react-hooks/rules-of-hooks": "error", // 检查 Hook 的规则
"react-hooks/exhaustive-deps": "warn" // 检查 effect 的依赖
}
}