diff --git a/React/Fabric/Surface/RCTFabricSurface.mm b/React/Fabric/Surface/RCTFabricSurface.mm index ba325ac55c8..5c67facb190 100644 --- a/React/Fabric/Surface/RCTFabricSurface.mm +++ b/React/Fabric/Surface/RCTFabricSurface.mm @@ -168,6 +168,8 @@ using namespace facebook::react; - (void)_updateLayoutContext { auto layoutConstraints = _surfaceHandler->getLayoutConstraints(); + layoutConstraints.layoutDirection = RCTLayoutDirection([[RCTI18nUtil sharedInstance] isRTL]); + auto layoutContext = _surfaceHandler->getLayoutContext(); layoutContext.pointScaleFactor = RCTScreenScale(); diff --git a/ReactCommon/react/renderer/scheduler/SurfaceHandler.cpp b/ReactCommon/react/renderer/scheduler/SurfaceHandler.cpp index 0e01c6e8d4e..acc6b36b195 100644 --- a/ReactCommon/react/renderer/scheduler/SurfaceHandler.cpp +++ b/ReactCommon/react/renderer/scheduler/SurfaceHandler.cpp @@ -58,6 +58,9 @@ void SurfaceHandler::start() const noexcept { std::unique_lock lock(linkMutex_); react_native_assert( link_.status == Status::Registered && "Surface must be registered."); + react_native_assert( + getLayoutConstraints().layoutDirection != LayoutDirection::Undefined && + "layoutDirection must be set."); auto parameters = Parameters{}; {