jsx-eslint/eslint-plugin-react
View on GitHub[react/require-default-props] False positive with React.forwardRef
Open
#2856 opened on Nov 13, 2020
help wanted
Description
The react/require-default-props rule configured with ignoreFunctionalComponents: true produces false positives for functional components that use React.forwardRef, like the following:
import React from "react"
import PropTypes from "prop-types"
const Demo = React.forwardRef((props, ref) => {
const { text } = props
return <div ref={ref}>{text}</div>
})
Demo.propTypes = {
// Error: propType "text" is not required, but has no corresponding defaultProps declaration
text: PropTypes.string,
}
export default Demo
Here are two CodeSandbox links demonstrating the problem with both .jsx and .tsx files:
- https://codesandbox.io/s/gatsby-starter-default-forked-hfn6k?file=/src/components/demo.jsx
- https://codesandbox.io/s/gatsby-starter-default-forked-hfn6k?file=/src/components/demo.tsx
Run yarn lint to reproduce.
I would expect components built with React.forwardRef to be considered functional components and be ignored when ignoreFunctionalComponents is true.