diff --git a/packages/react-native/React/Views/ScrollView/RCTScrollView.m b/packages/react-native/React/Views/ScrollView/RCTScrollView.m index 843bbd7cf859ff..e0dcc3b4a3b4a6 100644 --- a/packages/react-native/React/Views/ScrollView/RCTScrollView.m +++ b/packages/react-native/React/Views/ScrollView/RCTScrollView.m @@ -856,7 +856,14 @@ - (void)didMoveToWindow if (_scrollView.isDecelerating || !_scrollView.isTracking) { // Trigger the onMomentumScrollEnd event manually RCT_SEND_SCROLL_EVENT(onMomentumScrollEnd, nil); - RCT_FORWARD_SCROLL_EVENT(scrollViewDidEndDecelerating : _scrollView); + // We can't use the RCT_FORWARD_SCROLL_EVENT here beacuse the `_cmd` parameter passed + // to `respondsToSelector` is the current method - so it will be `didMoveToWindow` - and not + // `scrollViewDidEndDecelerating` that is passed. + for (NSObject *scrollViewListener in _scrollListeners) { + if ([scrollViewListener respondsToSelector:@selector(scrollViewDidEndDecelerating:)]) { + [scrollViewListener performSelector:@selector(scrollViewDidEndDecelerating:) withObject:_scrollView]; + } + } } } }