mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
Fabric: New names for ContextContainer methods
Summary: ... and slighly new behaviour for one of them. The method does nothing if given `key` already exists in the container. This diff finishes the transition of ContextContainer from an internal bag of things with unclear yet ownership into a legit dedicated dependency injection container for the product code. The original names of methods imply that the container can have only one object of a given type which is no longer true. The new API is much more generic and idiomatic to C++, it mimics `std:map` API which is intuitive to anyone who familiar with C++ containers. Besides the naming, `insert` method changed the semantic a bit; now it does nothing in case of inserting an object with a key that already exists. That might seem counterintuitive for "normal" people, but C++ has some wired reasons for that and, hopefully, it's expected behavior in the C++ community. Fun fact: We need this to fix hot-reload. Reviewed By: sahrens Differential Revision: D15681736 fbshipit-source-id: 194f342528446a911eaf072ba3a94a5d8af3cb52
This commit is contained in:
committed by
Facebook Github Bot
parent
a19cfc2273
commit
205de0538c
@@ -136,8 +136,8 @@ void Binding::installFabricUIManager(
|
||||
|
||||
std::shared_ptr<const ReactNativeConfig> config =
|
||||
std::make_shared<const ReactNativeConfigHolder>(reactNativeConfig);
|
||||
contextContainer->registerInstance(config, "ReactNativeConfig");
|
||||
contextContainer->registerInstance(javaUIManager_, "FabricUIManager");
|
||||
contextContainer->insert("ReactNativeConfig", config);
|
||||
contextContainer->insert("FabricUIManager", javaUIManager_);
|
||||
|
||||
auto toolbox = SchedulerToolbox{};
|
||||
toolbox.contextContainer = contextContainer;
|
||||
|
||||
Reference in New Issue
Block a user