💼🚫 This rule is enabled in the ☑️ recommended config. This rule is disabled in the 🏃 jsx-runtime config.
JSX expands to a call to React.createElement, a file which includes React
but only uses JSX should consider the React variable as used.
If you are using the @jsx pragma this rule will mark the designated variable and not the React one.
This rule has no effect if the no-unused-vars rule is not enabled.
You can use the shared settings to specify a custom pragma.
Examples of incorrect code for this rule:
var React = require('react');
// nothing to do with React/** @jsx Foo */
var React = require('react');
var Hello = <div>Hello {this.props.name}</div>;Examples of correct code for this rule:
var React = require('react');
var Hello = <div>Hello {this.props.name}</div>;/** @jsx Foo */
var Foo = require('foo');
var Hello = <div>Hello {this.props.name}</div>;If you are not using JSX, if React is declared as global variable, or if you do not use the no-unused-vars rule.
If you are using the new JSX transform from React 17, you should disable this rule by extending react/jsx-runtime in your eslint config (add "plugin:react/jsx-runtime" to "extends").