ReactNativeFeatureFlags

This object provides access to internal React Native feature flags.

All the methods are thread-safe if you handle override correctly.

Functions

Link copied to clipboard

Enables start- and finishOperationBatch on any platform.

Link copied to clipboard

Common flag for testing. Do NOT modify.

Link copied to clipboard

Use a C++ implementation of Native Animated instead of the platform implementation.

Link copied to clipboard

This is a combination of dangerouslyReset and override that reduces the likeliness of a race condition between the two calls.

Link copied to clipboard

Removes the overridden feature flags and makes the API return default values again.

Link copied to clipboard

Prevent FabricMountingManager from reordering mountItems, which may lead to invalid state on the UI thread

When enabled, Android will accumulate updates in rawProps to reduce the number of mounting instructions for cascading re-renders.

Link copied to clipboard

Feature flag to enable the new bridgeless architecture. Note: Enabling this will force enable the following flags: useTurboModules&enableFabricRenderer.

Link copied to clipboard

Enable prop iterator setter-style construction of Props in C++ (this flag is not used in Java).

Link copied to clipboard

Feature flag to configure eager attachment of the root view/initialisation of the JS code.

Link copied to clipboard

This feature flag enables logs for Fabric.

Link copied to clipboard

Enables the use of the Fabric renderer in the whole app.

Link copied to clipboard

When enabled, Android will build and initiate image prefetch requests on ImageShadowNode::layout

Link copied to clipboard

iOS Views will clip to their padding box vs border box

Link copied to clipboard

Trigger JS runtime GC on memory pressure event on iOS

Link copied to clipboard

When enabled, LayoutAnimations API will animate state changes on Android.

Link copied to clipboard

When enabled, LayoutAnimations API will animate state changes on iOS.

Link copied to clipboard

Enables the reporting of long tasks through PerformanceObserver. Only works if the event loop is enabled.

Link copied to clipboard

Makes modules requiring main queue setup initialize on the main thread, during React Native init.

Link copied to clipboard

Parse CSS strings using the Fabric CSS parser instead of ViewConfig processing

Link copied to clipboard

Use BackgroundDrawable and BorderDrawable instead of CSSBackgroundDrawable

Link copied to clipboard

When enabled, Android will receive prop updates based on the differences between the last rendered shadow node and the last committed shadow node.

Link copied to clipboard

Report paint time inside the Event Timing API implementation (PerformanceObserver).

Link copied to clipboard

Dispatches state updates synchronously in Fabric (e.g.: updates the scroll position in the shadow tree synchronously from the main thread).

Link copied to clipboard

Ensures that JavaScript always has a consistent view of the state of the UI (e.g.: commits done in other threads are not immediately propagated to JS during its execution).

Link copied to clipboard

Enables View Culling: as soon as a view goes off screen, it can be reused anywhere in the UI and pieced together with other items to create new UI elements.

Link copied to clipboard

Enables View Recycling. When enabled, individual ViewManagers must still opt-in.

Link copied to clipboard

Enables View Recycling for via ReactTextView/ReactTextViewManager.

Link copied to clipboard

Enables View Recycling for via ReactViewGroup/ReactViewManager.

Uses the default event priority instead of the discreet event priority by default when dispatching events from Fabric to React.

Fixes a limitation on Android where the mounting coordinator would report there are no pending transactions but some of them were actually not processed due to the use of the push model.

Link copied to clipboard

Flag determining if the React Native DevTools (Fusebox) CDP backend should be enabled in release builds. This flag is global and should not be changed across React Host lifetimes.

Link copied to clipboard

Enable network inspection support in the React Native DevTools CDP backend. Requires enableBridgelessArchitecture. This flag is global and should not be changed across React Host lifetimes.

Link copied to clipboard

Overrides the feature flags with the ones provided by the given provider (generally one that extends ReactNativeFeatureFlagsDefaults).

Link copied to clipboard

When enabled, mutex _turboModuleManagerDelegateMutex in RCTTurboModuleManager will not be used

Throw an exception instead of deadlocking when a TurboModule that requires main queue setup is initialized during a synchronous render on iOS.

Enables storing js caller stack when creating promise in native module. This is useful in case of Promise rejection and tracing the cause.

Link copied to clipboard

In Bridgeless mode, use the always available javascript error reporting pipeline.

Link copied to clipboard

If true, focusing in ReactEditText will mainly use stock Android requestFocus() behavior. If false it will use legacy custom focus behavior.

Link copied to clipboard

Should this application enable the Fabric Interop Layer for Android? If yes, the application will behave so that it can accept non-Fabric components and render them on Fabric. This toggle is controlling extra logic such as custom event dispatching that are needed for the Fabric Interop Layer to work correctly.

Link copied to clipboard

When enabled, the native view configs are used in bridgeless mode.

Link copied to clipboard

Uses an optimized mechanism for event batching on Android that does not need to wait for a Choreographer frame callback.

Link copied to clipboard

Instead of using folly::dynamic as internal representation in RawProps and RawValue, use jsi::Value

Link copied to clipboard

In Bridgeless mode, should legacy NativeModules use the TurboModule system?

Link copied to clipboard

When enabled, NativeModules will be executed by using the TurboModule system