diff --git a/lib/rules/jsx-no-constructed-context-values.js b/lib/rules/jsx-no-constructed-context-values.js
index af7c9575df..ac34ead85e 100644
--- a/lib/rules/jsx-no-constructed-context-values.js
+++ b/lib/rules/jsx-no-constructed-context-values.js
@@ -6,6 +6,7 @@
'use strict';
+const Components = require('../util/Components');
const docsUrl = require('../util/docsUrl');
const report = require('../util/report');
@@ -139,7 +140,8 @@ module.exports = {
messages,
},
- create(context) {
+ // eslint-disable-next-line arrow-body-style
+ create: Components.detect((context, components, utils) => {
return {
JSXOpeningElement(node) {
const openingElementName = node.name;
@@ -184,6 +186,10 @@ module.exports = {
return;
}
+ if (!utils.getParentComponent(node)) {
+ return;
+ }
+
// Report found error
const constructType = constructInfo.type;
const constructNode = constructInfo.node;
@@ -214,5 +220,5 @@ module.exports = {
});
},
};
- },
+ }),
};
diff --git a/tests/lib/rules/jsx-no-constructed-context-values.js b/tests/lib/rules/jsx-no-constructed-context-values.js
index 1ec0592382..c8c9dee995 100644
--- a/tests/lib/rules/jsx-no-constructed-context-values.js
+++ b/tests/lib/rules/jsx-no-constructed-context-values.js
@@ -31,13 +31,13 @@ const ruleTester = new RuleTester({ parserOptions });
ruleTester.run('react-no-constructed-context-values', rule, {
valid: parsers.all([
{
- code: '',
+ code: 'const Component = () => ',
},
{
- code: '',
+ code: 'const Component = () => ',
},
{
- code: '',
+ code: 'const Component = () => ',
},
{
code: 'function Component() { const foo = useMemo(() => { return {} }, []); return ()}',
@@ -137,6 +137,16 @@ ruleTester.run('react-no-constructed-context-values', rule, {
}
`,
},
+ {
+ code: `
+ const root = ReactDOM.createRoot(document.getElementById('root'));
+ root.render(
+
+
+
+ );
+ `,
+ },
]),
invalid: parsers.all([
{