react-native/React/Fabric/Mounting/MountItems/RCTRemoveMountItem.mm
Valentin Shergin 9ea7957958 Fabric: Do not crash in attempt to mount layout-only components
Summary: We do not have a clear strategy how to deal with layout-only (view-less) components. Even if this particular solution is not so fancy, it prevents crashing during text rendering.

Reviewed By: mdvacca

Differential Revision: D7785885

fbshipit-source-id: f3ed8988aa2b41349fd1693c2a7f8c9368daee43
2018-05-08 19:24:10 -07:00

45 lines
1.1 KiB
Plaintext

/**
* Copyright (c) 2015-present, Facebook, Inc.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
#import "RCTRemoveMountItem.h"
#import "RCTComponentViewRegistry.h"
@implementation RCTRemoveMountItem {
ReactTag _childTag;
ReactTag _parentTag;
NSInteger _index;
}
- (instancetype)initWithChildTag:(ReactTag)childTag
parentTag:(ReactTag)parentTag
index:(NSInteger)index
{
if (self = [super init]) {
_childTag = childTag;
_parentTag = parentTag;
_index = index;
}
return self;
}
- (void)executeWithRegistry:(RCTComponentViewRegistry *)registry
{
UIView<RCTComponentViewProtocol> *childComponentView = [registry componentViewByTag:_childTag];
UIView<RCTComponentViewProtocol> *parentComponentView = [registry componentViewByTag:_parentTag];
if (childComponentView == nil || parentComponentView == nil) {
return;
}
[parentComponentView unmountChildComponentView:childComponentView
index:_index];
}
@end