Extra rules for React Hooks.
Install
npm install --save-dev eslint-plugin-react-hooks-extra
Setup
import js from "@eslint/js";
import reactHooksExtra from "eslint-plugin-react-hooks-extra";
import tseslint from "typescript-eslint";
export default tseslint.config({
files: ["**/*.ts", "**/*.tsx"],
extends: [
js.configs.recommended,
tseslint.configs.recommended,
reactHooksExtra.configs.recommended,
],
languageOptions: {
parser: tseslint.parser,
parserOptions: {
projectService: true,
},
},
rules: {
"react-hooks-extra/no-unnecessary-use-prefix": "warn",
"react-hooks-extra/prefer-use-state-lazy-initialization": "warn",
},
});
Rules
https://eslint-react.xyz/docs/rules/overview#hooks-extra-rules
v1.40.0 (2025-04-01)
✨ New
- feat(react-x): add
react-x/jsx-uses-react
rule by @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/1027
- feat: enable
react-x/jsx-uses-react
rule in recommended presets by @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/1027
- feat: enable
naming-convention/context-name
rule in recommended presets by @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/1024
- feat(kit): add
JsxRuntime
module by @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/1025
Full Changelog: https://github.com/Rel1cx/eslint-react/compare/v1.38.4...v1.40.0