From 61db53c179a80a40beec3cc220da05bfdbb02efd Mon Sep 17 00:00:00 2001 From: Nick Gerleman Date: Tue, 17 Feb 2026 16:16:06 -0800 Subject: [PATCH] [Native] Add RCTSelectableText as a recognized Text component (#35780) ## Summary Add "RCTSelectableText" to the list of component names recognized as being inside a text element, alongside "RCTText". React Native's new text stack, tries to optimize and allows differentiating between a custom TextView, with lower level control, that can reuse the work performed during Fabric/Yoga layout, and a native TextView, used for fidelity. On Android at least, the only place we've needed native TextView for fidelity/native UX has been support for `selectable` text, which has many unique UI interactions. ## How did you test this change? When I patch this in, alongside https://github.com/facebook/react-native/pull/55552, we no longer see warnings when we render text inside of RCTSelectableText component. --------- Co-authored-by: Eli White --- packages/react-native-renderer/src/ReactFiberConfigFabric.js | 1 + packages/react-native-renderer/src/ReactFiberConfigNative.js | 1 + 2 files changed, 2 insertions(+) diff --git a/packages/react-native-renderer/src/ReactFiberConfigFabric.js b/packages/react-native-renderer/src/ReactFiberConfigFabric.js index cc7f0d0c36..4eeac54337 100644 --- a/packages/react-native-renderer/src/ReactFiberConfigFabric.js +++ b/packages/react-native-renderer/src/ReactFiberConfigFabric.js @@ -278,6 +278,7 @@ export function getChildHostContext( const isInAParentText = type === 'AndroidTextInput' || // Android type === 'RCTMultilineTextInputView' || // iOS + type === 'RCTSelectableText' || type === 'RCTSinglelineTextInputView' || // iOS type === 'RCTText' || type === 'RCTVirtualText'; diff --git a/packages/react-native-renderer/src/ReactFiberConfigNative.js b/packages/react-native-renderer/src/ReactFiberConfigNative.js index fcf356776c..404ae7a54a 100644 --- a/packages/react-native-renderer/src/ReactFiberConfigNative.js +++ b/packages/react-native-renderer/src/ReactFiberConfigNative.js @@ -275,6 +275,7 @@ export function getChildHostContext( const isInAParentText = type === 'AndroidTextInput' || // Android type === 'RCTMultilineTextInputView' || // iOS + type === 'RCTSelectableText' || type === 'RCTSinglelineTextInputView' || // iOS type === 'RCTText' || type === 'RCTVirtualText';