mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
a255204e3e
Summary: We are removing `reactBridgeDidFinishTransaction`. Why? * It is a performance drain. Supporting this requires dispatching main-thread block on every single transaction complete; * It has "too broad" non-conceptual semantic which encouraged using this as a "band-aid solution" for poorly designed components; * It is conceptually incompatible with new approaches that we are trying to implement to optimize the render layer; * It was deprecated for very long time. This diff removes `reactBridgeDidFinishTransaction` from RCTScrollView component. As I mentioned, because of the semantic of `reactBridgeDidFinishTransaction` is extremely broad, it's hard to capture what exact case it should handle. Based on comments and existing logic, it seems it tight to `contentSize` property and the size of RCTScrollContentView. Reviewed By: rsnara Differential Revision: D6538419 fbshipit-source-id: ccc6f5fea327471f10f1738d3da5214c0d362953
36 lines
837 B
Objective-C
36 lines
837 B
Objective-C
/**
|
|
* Copyright (c) 2015-present, Facebook, Inc.
|
|
* All rights reserved.
|
|
*
|
|
* This source code is licensed under the BSD-style license found in the
|
|
* LICENSE file in the root directory of this source tree. An additional grant
|
|
* of patent rights can be found in the PATENTS file in the same directory.
|
|
*/
|
|
|
|
#import "RCTScrollContentView.h"
|
|
|
|
#import <React/RCTAssert.h>
|
|
#import <React/UIView+React.h>
|
|
|
|
#import "RCTScrollView.h"
|
|
|
|
@implementation RCTScrollContentView
|
|
|
|
- (void)reactSetFrame:(CGRect)frame
|
|
{
|
|
[super reactSetFrame:frame];
|
|
|
|
RCTScrollView *scrollView = (RCTScrollView *)self.superview.superview;
|
|
|
|
if (!scrollView) {
|
|
return;
|
|
}
|
|
|
|
RCTAssert([scrollView isKindOfClass:[RCTScrollView class]],
|
|
@"Unexpected view hierarchy of RCTScrollView component.");
|
|
|
|
[scrollView updateContentOffsetIfNeeded];
|
|
}
|
|
|
|
@end
|