diff --git a/packages/react-native/ReactCommon/react/renderer/scheduler/SurfaceHandler.cpp b/packages/react-native/ReactCommon/react/renderer/scheduler/SurfaceHandler.cpp index b1c4426a59b..da00fd874bf 100644 --- a/packages/react-native/ReactCommon/react/renderer/scheduler/SurfaceHandler.cpp +++ b/packages/react-native/ReactCommon/react/renderer/scheduler/SurfaceHandler.cpp @@ -162,8 +162,25 @@ std::string SurfaceHandler::getModuleName() const noexcept { void SurfaceHandler::setProps(folly::dynamic const &props) const noexcept { SystraceSection s("SurfaceHandler::setProps"); - std::unique_lock lock(parametersMutex_); - parameters_.props = props; + auto parameters = Parameters{}; + { + std::unique_lock lock(parametersMutex_); + + parameters_.props = props; + parameters = parameters_; + } + + { + std::shared_lock lock(linkMutex_); + + if (link_.status == Status::Running) { + link_.uiManager->setSurfaceProps( + parameters.surfaceId, + parameters.moduleName, + parameters.props, + parameters.displayMode); + } + } } folly::dynamic SurfaceHandler::getProps() const noexcept {