Skills Development React String Refs Migration Guide

React String Refs Migration Guide

v20260410
react18-string-refs
This skill provides comprehensive migration patterns for handling deprecated string refs in React (e.g., ref="name" + this.refs.name). As string refs are removed in React 19, this guide details how to safely migrate all usage—including single element refs, list refs, and callback refs—to the modern, recommended pattern using React.createRef(). It ensures developers can update their codebase for robust compatibility with React 18 and beyond.
Get Skill
450 downloads
Overview

React 18 String Refs Migration

String refs (ref="myInput" + this.refs.myInput) were deprecated in React 16.3, warn in React 18.3.1, and are removed in React 19.

Quick Pattern Map

Pattern Reference
Single ref on a DOM element → patterns.md#single-ref
Multiple refs in one component → patterns.md#multiple-refs
Refs in a list / dynamic refs → patterns.md#list-refs
Callback refs (alternative approach) → patterns.md#callback-refs
Ref passed to a child component → patterns.md#forwarded-refs

Scan Command

# Find all string ref assignments in JSX
grep -rn 'ref="' src/ --include="*.js" --include="*.jsx" | grep -v "\.test\."

# Find all this.refs accessors
grep -rn "this\.refs\." src/ --include="*.js" --include="*.jsx" | grep -v "\.test\."

Both should be migrated together - find the ref="name" and the this.refs.name accesses for each component as a pair.

The Migration Rule

Every string ref migrates to React.createRef():

  1. Add refName = React.createRef(); as a class field (or in constructor)
  2. Replace ref="refName"ref={this.refName} in JSX
  3. Replace this.refs.refNamethis.refName.current everywhere

Read references/patterns.md for the full before/after for each case.

Info
Category Development
Name react18-string-refs
Version v20260410
Size 3KB
Updated At 2026-04-12
Language