diff --git a/packages/react-native/ReactCommon/react/renderer/mounting/ShadowTree.cpp b/packages/react-native/ReactCommon/react/renderer/mounting/ShadowTree.cpp index 7dbc9745174..4f189ff675f 100644 --- a/packages/react-native/ReactCommon/react/renderer/mounting/ShadowTree.cpp +++ b/packages/react-native/ReactCommon/react/renderer/mounting/ShadowTree.cpp @@ -371,9 +371,6 @@ CommitStatus ShadowTree::tryCommit( telemetry.unsetAsThreadLocal(); telemetry.didLayout(affectedLayoutableNodes.size()); - // Seal the shadow node so it can no longer be mutated - newRootShadowNode->sealRecursive(); - { // Updating `currentRevision_` in unique manner if it hasn't changed. std::unique_lock lock(commitMutex_); @@ -409,6 +406,9 @@ CommitStatus ShadowTree::tryCommit( telemetry.didCommit(); telemetry.setRevisionNumber(static_cast(newRevisionNumber)); + // Seal the shadow node so it can no longer be mutated + newRootShadowNode->sealRecursive(); + newRevision = ShadowTreeRevision{ std::move(newRootShadowNode), newRevisionNumber, telemetry};