mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
Fix: Preserve native animated value after animated component unmount (#28841)
Summary: After animation has been finished using Native driver there is no final value passed from the native to JS side. This causes a bug from https://github.com/facebook/react-native/issues/28114. This PR solves this problem in the same way as `react-native-reanimated` library. When detaching it is calling native side to get the last value from Animated node and stores it on the JS side. Preserving animated value even if animation was using `useNativeDriver: true` Fixes https://github.com/facebook/react-native/issues/28114 ## Changelog <!-- Help reviewers and the release process by writing your own changelog entry. For an example, see: https://github.com/facebook/react-native/wiki/Changelog --> [Internal] [Fixed] - Save native Animated node value on JS side in detach phase Pull Request resolved: https://github.com/facebook/react-native/pull/28841 Test Plan: Unit tests for added getValue method passed. Green CI Reviewed By: mdvacca Differential Revision: D22211499 Pulled By: JoshuaGross fbshipit-source-id: 9a3a98a9f9a8536fe2c8764f667cdabe1f6ba82a
This commit is contained in:
committed by
Facebook GitHub Bot
parent
0fda91ffff
commit
d92284216f
@@ -774,4 +774,16 @@ public class NativeAnimatedModule extends NativeAnimatedModuleSpec
|
||||
public void removeListeners(double count) {
|
||||
// iOS only
|
||||
}
|
||||
|
||||
@Override
|
||||
public void getValue(final double animatedValueNodeTagDouble, final Callback callback) {
|
||||
final int animatedValueNodeTag = (int) animatedValueNodeTagDouble;
|
||||
mOperations.add(
|
||||
new UIThreadOperation() {
|
||||
@Override
|
||||
public void execute(NativeAnimatedNodesManager animatedNodesManager) {
|
||||
animatedNodesManager.getValue(animatedValueNodeTag, callback);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user