Avoid crashing in Fabric/Paper interop without bridge [1/n]
Summary: Fabric/Paper interop expects bridge to be contained in `contextContainer`, and crashes if it's not there. This diff avoids a crash, and instead fails silently. Future diffs in stack will enable `RCTComponentData` and `RCTLegacyViewManagerInteropCoordinator` to function without the bridge. Changelog: [Internal] Reviewed By: fkgozali Differential Revision: D27374809 fbshipit-source-id: 2c9e03a1eaf5bcaa57887b203221111015cf4de5
This commit is contained in:
Родитель
a038179b9b
Коммит
3f8d5083f7
|
@ -59,8 +59,13 @@ static std::shared_ptr<void> const constructCoordinator(
|
|||
auto moduleName = moduleNameFromComponentName(componentName);
|
||||
Class module = NSClassFromString(RCTNSStringFromString(moduleName));
|
||||
assert(module);
|
||||
RCTBridge *bridge = (RCTBridge *)unwrapManagedObjectWeakly(contextContainer->at<std::shared_ptr<void>>("Bridge"));
|
||||
RCTComponentData *componentData = [[RCTComponentData alloc] initWithManagerClass:module bridge:bridge];
|
||||
auto optionalBridge = contextContainer->find<std::shared_ptr<void>>("Bridge");
|
||||
RCTBridge *bridge;
|
||||
if (optionalBridge) {
|
||||
bridge = unwrapManagedObjectWeakly(optionalBridge.value());
|
||||
}
|
||||
RCTComponentData *componentData = [[RCTComponentData alloc] initWithManagerClass:module
|
||||
bridge:bridge];
|
||||
return wrapManagedObject([[RCTLegacyViewManagerInteropCoordinator alloc] initWithComponentData:componentData
|
||||
bridge:bridge]);
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче