mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
Native Animated - Support multiple events attached to the same prop
Summary: Re-applying the diff that was reverted in D4659669 / https://github.com/facebook/react-native/commit/b87f4abf7815be4666719fb03c040efe3b0f9d81 because of some crashes with fixes from D4659708 merged in. --- Fixes a bug that happens when trying to use ScrollView with sticky headers and native `Animated.event` with `onScroll`. Made a few changes to the ListViewPaging UIExplorer example to repro https://gist.github.com/janicduplessis/17e2fcd99c6ea49ced2954d881011b09. What happens is we need to be able to add multiple events to the same prop + viewTag pair. To do that I simple changed the data structure to `Map<prop+viewTag, List<AnimatedEventDriver>>` and try to optimize for the case where there is only one item in the list since it will be the case 99% of the time. **Test plan** Tested by reproducing the bug with the above gist and made sure it was fixed after applying this diff. Closes https://github.com/facebook/react-native/pull/12697 Reviewed By: fkgozali Differential Revision: D4661105 Pulled By: sahrens fbshipit-source-id: c719dc85f45c1a142ef5b9ebfe0a82ae8ec66497
This commit is contained in:
committed by
Facebook Github Bot
parent
bfb2766c63
commit
921b9ac53d
@@ -353,11 +353,11 @@ public class NativeAnimatedModule extends ReactContextBaseJavaModule implements
|
||||
}
|
||||
|
||||
@ReactMethod
|
||||
public void removeAnimatedEventFromView(final int viewTag, final String eventName) {
|
||||
public void removeAnimatedEventFromView(final int viewTag, final String eventName, final int animatedValueTag) {
|
||||
mOperations.add(new UIThreadOperation() {
|
||||
@Override
|
||||
public void execute(NativeAnimatedNodesManager animatedNodesManager) {
|
||||
animatedNodesManager.removeAnimatedEventFromView(viewTag, eventName);
|
||||
animatedNodesManager.removeAnimatedEventFromView(viewTag, eventName, animatedValueTag);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user