diff --git a/ReactCommon/fabric/components/view/ConcreteViewShadowNode.h b/ReactCommon/fabric/components/view/ConcreteViewShadowNode.h index 8454d2dd7c1..7c090491000 100644 --- a/ReactCommon/fabric/components/view/ConcreteViewShadowNode.h +++ b/ReactCommon/fabric/components/view/ConcreteViewShadowNode.h @@ -105,13 +105,18 @@ class ConcreteViewShadowNode : public ConcreteShadowNode< void initialize() noexcept { auto &props = BaseShadowNode::getConcreteProps(); - BaseShadowNode::orderIndex_ = props.zIndex.value_or(0); - if (props.yogaStyle.display() == YGDisplayNone) { BaseShadowNode::traits_.set(ShadowNodeTraits::Trait::Hidden); } else { BaseShadowNode::traits_.unset(ShadowNodeTraits::Trait::Hidden); } + + // `zIndex` is only defined for non-`static` positioned views. + if (props.yogaStyle.positionType() != YGPositionTypeStatic) { + BaseShadowNode::orderIndex_ = props.zIndex.value_or(0); + } else { + BaseShadowNode::orderIndex_ = 0; + } } }; diff --git a/ReactCommon/fabric/components/view/ViewShadowNode.cpp b/ReactCommon/fabric/components/view/ViewShadowNode.cpp index 9a0ee18d462..060de546cba 100644 --- a/ReactCommon/fabric/components/view/ViewShadowNode.cpp +++ b/ReactCommon/fabric/components/view/ViewShadowNode.cpp @@ -45,7 +45,7 @@ void ViewShadowNode::initialize() noexcept { viewProps.opacity != 1.0 || viewProps.transform != Transform{} || viewProps.elevation != 0 || (viewProps.zIndex.has_value() && - viewProps.yogaStyle.positionType() == YGPositionTypeAbsolute) || + viewProps.yogaStyle.positionType() != YGPositionTypeStatic) || viewProps.yogaStyle.display() == YGDisplayNone || viewProps.getClipsContentToBounds() || isColorMeaningful(viewProps.shadowColor) ||