Prevent the Keyboard from Covering React Native UI Components
Learn how to handle keyboard behavior gracefully in React Native apps
React Native 0.78 is out. The main change is full React 19 support. Here’s what’s new.
#React 19
Actions
Actions handle async transitions and form submissions with less boilerplate. Pending states, optimistic updates, and error handling are managed for you.
useActionState
Returns an action wrapped with its latest result and pending state. Useful for keeping submit-style flows simple.
useOptimist
Shows optimistic UI updates while async requests resolve. Replaces the manual local-state-then-reconcile pattern.
use()
A new API for reading promises and context during render. React suspends until the resource resolves, so you don’t need a loading state in the calling component.
ref as a regular prop
You can pass ref like any other prop. forwardRef is no longer required. PropTypes is deprecated, so older code needs updating.
React Compiler
React Native 0.78 ships with React Compiler, which applies memoization at build time. It removes most cases where you’d reach for useMemo or useCallback manually.
To enable it:
Install the compiler package.
Add the Babel plugin.
Verify via developer tools.
Release cadence
From 2025, React Native moves to smaller, more frequent releases with fewer breaking changes.
XML icons on Android
0.78 supports native XML icons on Android. You can:
Use vector icons across screen sizes without quality loss.
Cut APK size by dropping bitmap variants.
Import XML icons like any other static resource.
Expo
React Native 0.78 support is landing via a Canary SDK. Expo SDK 53 will ship with full 0.79 compatibility.
Summary
- React 19 support including useOptimist and use().
- React Compiler for automatic memoization.
- Shorter release cycle.
- Native XML icons on Android.