/
githubmr
/
facebook-react-native
Обзор
Документация
Войти
/
githubmr
/
facebook-react-native
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
main
packages/react-native/ReactCommon/react/renderer/core/Props.cpp
68 строк
2 KB
Nick Lefever
Use RN_SERIALIZABLE_STATE for conditional getDiffProps code (#51516)
22 май 2025, 13:11
22 май 2025, 13:11
f900551
Код
Авторство
О чём код?
/* * Copyright (c) Meta Platforms, Inc. and affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ #include "Props.h" #include <react/renderer/core/propsConversions.h> #include <react/featureflags/ReactNativeFeatureFlags.h> #include <react/renderer/debug/debugStringConvertibleUtils.h> #include "DynamicPropsUtilities.h" namespace facebook::react { Props::Props( const PropsParserContext& context, const Props& sourceProps, const RawProps& rawProps, const std::function<bool(const std::string&)>& filterObjectKeys) { initialize(context, sourceProps, rawProps, filterObjectKeys); } void Props::initialize( const PropsParserContext& context, const Props& sourceProps, const RawProps& rawProps, [[maybe_unused]] const std::function<bool(const std::string&)>& filterObjectKeys) { nativeId = ReactNativeFeatureFlags::enableCppPropsIteratorSetter() ? sourceProps.nativeId : convertRawProp(context, rawProps, "nativeID", sourceProps.nativeId, {}); #ifdef RN_SERIALIZABLE_STATE if (ReactNativeFeatureFlags::enableAccumulatedUpdatesInRawPropsAndroid()) { auto& oldRawProps = sourceProps.rawProps; auto newRawProps = rawProps.toDynamic(filterObjectKeys); auto mergedRawProps = mergeDynamicProps( oldRawProps, newRawProps, NullValueStrategy::Override); this->rawProps = mergedRawProps; } else { this->rawProps = rawProps.toDynamic(filterObjectKeys); } #endif } void Props::setProp( const PropsParserContext& context, RawPropsPropNameHash hash, const char* /*propName*/, const RawValue& value) { switch (hash) { case CONSTEXPR_RAW_PROPS_KEY_HASH("nativeID"): fromRawValue(context, value, nativeId, {}); return; } } #pragma mark - DebugStringConvertible #if RN_DEBUG_STRING_CONVERTIBLE SharedDebugStringConvertibleList Props::getDebugProps() const { return {debugStringConvertibleItem("nativeID", nativeId)}; } #endif } // namespace facebook::react