diff --git a/lib/util/Components.js b/lib/util/Components.js index eb60d845a5..b6114717c5 100644 --- a/lib/util/Components.js +++ b/lib/util/Components.js @@ -515,7 +515,7 @@ function componentRule(rule, context) { // Case like `React.memo(() => <>)` or `React.forwardRef(...)` const pragmaComponentWrapper = utils.getPragmaComponentWrapper(node); - if (pragmaComponentWrapper) { + if (pragmaComponentWrapper && utils.isReturningJSXOrNull(node)) { return pragmaComponentWrapper; } diff --git a/tests/lib/rules/display-name.js b/tests/lib/rules/display-name.js index be0c8442e5..85e076d4d1 100644 --- a/tests/lib/rules/display-name.js +++ b/tests/lib/rules/display-name.js @@ -588,6 +588,19 @@ ruleTester.run('display-name', rule, { } `, }, + { + // issue #3303 + code: ` + function MyComponent(props) { + return {props.name}; + } + + const MemoizedMyComponent = React.memo( + MyComponent, + (prevProps, nextProps) => prevProps.name === nextProps.name + ) + `, + }, ]), invalid: parsers.all([