Awesome-copilot react19-source-patterns

Reference for React 19 source-file migration patterns, including API changes, ref handling, and context updates.

install
source · Clone the upstream repo
git clone https://github.com/github/awesome-copilot
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/github/awesome-copilot "$T" && mkdir -p ~/.claude/skills && cp -r "$T/plugins/react19-upgrade/skills/react19-source-patterns" ~/.claude/skills/github-awesome-copilot-react19-source-patterns && rm -rf "$T"
manifest: plugins/react19-upgrade/skills/react19-source-patterns/SKILL.md
source content

React 19 Source Migration Patterns

Reference for every source-file migration required for React 19.

Quick Reference Table

PatternActionReference
ReactDOM.render(...)
createRoot().render()
See references/api-migrations.md
ReactDOM.hydrate(...)
hydrateRoot(...)
See references/api-migrations.md
unmountComponentAtNode
root.unmount()
Inline fix
ReactDOM.findDOMNode
→ direct refInline fix
forwardRef(...)
wrapper
→ ref as direct propSee references/api-migrations.md
Component.defaultProps = {}
→ ES6 default paramsSee references/api-migrations.md
useRef()
no arg
useRef(null)
Inline fix add
null
Legacy Context
createContext
→ api-migrations.md#legacy-context
String refs
this.refs.x
createRef()
→ api-migrations.md#string-refs
import React from 'react'
(unused)
RemoveOnly if no
React.
usage in file

PropTypes Rule

Do not remove

.propTypes
assignments. The
prop-types
package still works as a standalone validator. React 19 only removes the built-in runtime checking from the React package the package itself remains valid.

Add this comment above any

.propTypes
block:

// NOTE: React 19 no longer runs propTypes validation at runtime.
// PropTypes kept for documentation and IDE tooling only.

Read the Reference

For full before/after code for each migration, read

references/api-migrations.md
. It contains the complete patterns including edge cases for
forwardRef
with
useImperativeHandle
,
defaultProps
null vs undefined behavior, and legacy context provider/consumer cross-file migrations.