Apply Animated initialProps handling to Fabric only (#34927)

Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/34927

The changes made in D36902220 (https://github.com/facebook/react-native/commit/a04195167bbd8f27c6141c0239a61a345cac5a88) and D36958882 (https://github.com/facebook/react-native/commit/d8c25ca1b62df2b93f70bbb1f7b379643ab9ccd4) attempted to reduce flickering and consistency issues when using Animated.

In the old renderer, we explicitly reset all animated props, and wait for the subsequent React commit to set the props to the right state, but if `initialProps` are used, the React reconciliation may not be able to identify the prop-update is required and will leave out the value. This behaviour is different in the new renderer, where we do not explicitly `restoreDefaultValues` on detaching the animated node, and instead rely on the latest state being correct(?).

Changelog:
[General][Fixed] Stop styles from being reset when detaching Animated.Values in old renderer

Fixes #34665

Reviewed By: rshest

Differential Revision: D40194072

fbshipit-source-id: 1b3fb1d1f4a39036a501a8a21e57002035dd5659

# Conflicts:
#	Libraries/Animated/createAnimatedComponent.js
This commit is contained in:
Pieter De Baets
2022-10-11 13:25:39 +01:00
committed by Lorenzo Sciandra
parent 37790e4507
commit fe8f0fb09f
3 changed files with 18 additions and 17 deletions
@@ -871,7 +871,7 @@ public class NativeAnimatedModule extends NativeAnimatedModuleSpec
if (ANIMATED_MODULE_DEBUG) {
FLog.d(
NAME,
"queue: disconnectAnimatedNodeFromView: " + animatedNodeTag + " viewTag: " + viewTag);
"queue disconnectAnimatedNodeFromView: " + animatedNodeTag + " viewTag: " + viewTag);
}
decrementInFlightAnimationsForViewTag(viewTag);
@@ -883,7 +883,7 @@ public class NativeAnimatedModule extends NativeAnimatedModuleSpec
if (ANIMATED_MODULE_DEBUG) {
FLog.d(
NAME,
"execute: disconnectAnimatedNodeFromView: "
"execute disconnectAnimatedNodeFromView: "
+ animatedNodeTag
+ " viewTag: "
+ viewTag);
@@ -897,8 +897,7 @@ public class NativeAnimatedModule extends NativeAnimatedModuleSpec
public void restoreDefaultValues(final double animatedNodeTagDouble) {
final int animatedNodeTag = (int) animatedNodeTagDouble;
if (ANIMATED_MODULE_DEBUG) {
FLog.d(
NAME, "queue restoreDefaultValues: disconnectAnimatedNodeFromView: " + animatedNodeTag);
FLog.d(NAME, "queue restoreDefaultValues: " + animatedNodeTag);
}
addPreOperation(
@@ -906,10 +905,7 @@ public class NativeAnimatedModule extends NativeAnimatedModuleSpec
@Override
public void execute(NativeAnimatedNodesManager animatedNodesManager) {
if (ANIMATED_MODULE_DEBUG) {
FLog.d(
NAME,
"execute restoreDefaultValues: disconnectAnimatedNodeFromView: "
+ animatedNodeTag);
FLog.d(NAME, "execute restoreDefaultValues: " + animatedNodeTag);
}
animatedNodesManager.restoreDefaultValues(animatedNodeTag);
}