---
title: "react19 no forwardref"
description: "> **⚠️ React 19+ only.** Skip this if you're on React 18 or earlier."
type: skill
canonical_url: https://claudary.paisolsolutions.com/skills/react19-no-forwardref
source: "Claudary"
difficulty: intermediate
author: "Claude Code Knowledge Pack"
date: 2026-07-10T11:37:29.085Z
license: CC-BY-4.0
attribution: "react19 no forwardref — Claudary (https://claudary.paisolsolutions.com/skills/react19-no-forwardref)"
---

# react19 no forwardref
> **⚠️ React 19+ only.** Skip this if you're on React 18 or earlier.

## Overview

---
title: React 19 API Changes
impact: MEDIUM
impactDescription: cleaner component definitions and context usage
tags: react19, refs, context, hooks
---

## React 19 API Changes

> **⚠️ 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):**

```tsx
const ComposerInput = forwardRef<TextInput, Props>((props, ref) => {
  return <TextInput ref={ref} {...props} />
})
```

**Correct (ref as a regular prop):**

```tsx
function ComposerInput({ ref, ...props }: Props & { ref?: React.Ref<TextInput> }) {
  return <TextInput ref={ref} {...props} />
}
```

**Incorrect (useContext in React 19):**

```tsx
const value = useContext(MyContext)
```

**Correct (use instead of useContext):**

```tsx
const value = use(MyContext)
```

`use()` can also be called conditionally, unlike `useContext()`.

---

Source: [Claudary](https://claudary.paisolsolutions.com/skills/react19-no-forwardref) · https://claudary.paisolsolutions.com
