react/packages/eslint-plugin-react-hooks
Ian Obermiller d3368beeec
[eslint-plugin-react-hooks] Disallow hooks in class components (#18341)
Per discussion at Facebook, we think hooks have reached a tipping point where it is more valuable to lint against potential hooks in classes than to worry about false positives.

Test plan:
```
# run from repo root
yarn test --watch RuleOfHooks
```
2020-03-18 19:55:13 +00:00
..
__tests__ [eslint-plugin-react-hooks] Disallow hooks in class components (#18341) 2020-03-18 19:55:13 +00:00
npm Add ESLint rule for React Hooks 2018-10-29 11:26:54 -07:00
src [eslint-plugin-react-hooks] Disallow hooks in class components (#18341) 2020-03-18 19:55:13 +00:00
index.js Move remaining things to named exports (#18165) 2020-02-27 17:18:55 -08:00
package.json update version numbers for 16.13 (#18143) 2020-02-26 20:33:29 +00:00
README.md feat: add recommended config eslint rule (#14762) 2020-02-28 02:01:17 +00:00

eslint-plugin-react-hooks

This ESLint plugin enforces the Rules of Hooks.

It is a part of the Hooks API for React.

Installation

Note: If you're using Create React App, please use react-scripts >= 3 instead of adding it directly.

Assuming you already have ESLint installed, run:

# npm
npm install eslint-plugin-react-hooks --save-dev

# yarn
yarn add eslint-plugin-react-hooks --dev

Then add it to your ESLint configuration:

{
  "plugins": [
    // ...
    "react-hooks"
  ],
  "rules": {
    // ...
    "react-hooks/rules-of-hooks": "error",
    "react-hooks/exhaustive-deps": "warn"
  }
}

Or use the recommended config:

{
  "extends": [
    // ...
    "plugin:react-hooks/recommended"
  ]
}

Valid and Invalid Examples

Please refer to the Rules of Hooks documentation and the Hooks FAQ to learn more about this rule.

For feedback about the exhaustive-deps rule, please post in this thread.

License

MIT