Setting the file. One moment.
Skill 01 · Vercel Composition Patterns
Subchapter 1.10
rules/react19-no-forwardref.mdMarkdown953 BView on GitHub
⚠️ React 19+ only. Skip this if you’re on React 18 or earlier.
In React 19, ref is now a regular prop (no forwardRef wrapper needed), and use() replaces .
useContext()Incorrect (forwardRef in React 19):
const ComposerInput = forwardRef<TextInput, Props>((props, ref) => {
return <TextInput ref={ref} {...props} />
})Correct (ref as a regular prop):
function ComposerInput({ ref, ...props }: Props & { ref?: React.Ref<TextInput> }) {
return <TextInput ref={ref} {...props} />
}Incorrect (useContext in React 19):
const value = useContext(MyContext)Correct (use instead of useContext):
const value = use(MyContext)use() can also be called conditionally, unlike useContext().