diff --git a/packages/react-native/React/Fabric/Mounting/RCTMountingManager.mm b/packages/react-native/React/Fabric/Mounting/RCTMountingManager.mm index fa65e055d05d95..68662f06d59bd4 100644 --- a/packages/react-native/React/Fabric/Mounting/RCTMountingManager.mm +++ b/packages/react-native/React/Fabric/Mounting/RCTMountingManager.mm @@ -14,6 +14,7 @@ #import #import #import +#import #import #import #import @@ -286,7 +287,6 @@ - (void)synchronouslyUpdateViewOnUIThread:(ReactTag)reactTag componentDescriptor:(const ComponentDescriptor &)componentDescriptor { RCTAssertMainQueue(); - NSArray *propsKeysToBeUpdated = extractKeysFromFollyDynamic(props); bool updatesTransform = props.find("transform") != props.items().end(); bool updatesOpacity = props.find("opacity") != props.items().end(); @@ -296,13 +296,18 @@ - (void)synchronouslyUpdateViewOnUIThread:(ReactTag)reactTag return; } + NSSet *propKeys = componentView.propKeysManagedByAnimated_DO_NOT_USE_THIS_IS_BROKEN ?: [NSSet new]; + + if (!ReactNativeFeatureFlags::useSharedAnimatedBackend()) { + NSArray *propsKeysToBeUpdated = extractKeysFromFollyDynamic(props); + propKeys = [propKeys setByAddingObjectsFromArray:propsKeysToBeUpdated]; + } + SurfaceId surfaceId = RCTSurfaceIdForView(componentView); Props::Shared oldProps = [componentView props]; Props::Shared newProps = componentDescriptor.cloneProps( PropsParserContext{surfaceId, *_contextContainer}, oldProps, RawProps(std::move(props))); - NSSet *propKeys = componentView.propKeysManagedByAnimated_DO_NOT_USE_THIS_IS_BROKEN ?: [NSSet new]; - propKeys = [propKeys setByAddingObjectsFromArray:propsKeysToBeUpdated]; componentView.propKeysManagedByAnimated_DO_NOT_USE_THIS_IS_BROKEN = nil; [componentView updateProps:newProps oldProps:oldProps]; componentView.propKeysManagedByAnimated_DO_NOT_USE_THIS_IS_BROKEN = propKeys;