diff --git a/change/react-native-windows-9fae9acd-d5a6-48d1-9d63-c333ad09ca76.json b/change/react-native-windows-9fae9acd-d5a6-48d1-9d63-c333ad09ca76.json new file mode 100644 index 00000000000..a69e8251056 --- /dev/null +++ b/change/react-native-windows-9fae9acd-d5a6-48d1-9d63-c333ad09ca76.json @@ -0,0 +1,7 @@ +{ + "type": "prerelease", + "comment": "Fix crash when currently focused element gets marked as enableFocusRing=false", + "packageName": "react-native-windows", + "email": "30809111+acoates-ms@users.noreply.github.com", + "dependentChangeType": "patch" +} diff --git a/vnext/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.cpp b/vnext/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.cpp index 7952c5e990c..16dcfb7d324 100644 --- a/vnext/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.cpp +++ b/vnext/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.cpp @@ -168,11 +168,14 @@ void ComponentView::updateProps( m_componentHostingFocusVisual->hostFocusVisual(false, get_strong()); } - if (m_componentHostingFocusVisual->m_focusPrimitive->m_focusInnerPrimitive) { - m_componentHostingFocusVisual->m_focusPrimitive->m_focusInnerPrimitive->updateProps(oldViewProps, newViewProps); - } - if (m_componentHostingFocusVisual->m_focusPrimitive->m_focusOuterPrimitive) { - m_componentHostingFocusVisual->m_focusPrimitive->m_focusOuterPrimitive->updateProps(oldViewProps, newViewProps); + // We have to check m_componentHostingFocusVisual again, as it can be set to null by above hostFocusVisual call + if (m_componentHostingFocusVisual) { + if (m_componentHostingFocusVisual->m_focusPrimitive->m_focusInnerPrimitive) { + m_componentHostingFocusVisual->m_focusPrimitive->m_focusInnerPrimitive->updateProps(oldViewProps, newViewProps); + } + if (m_componentHostingFocusVisual->m_focusPrimitive->m_focusOuterPrimitive) { + m_componentHostingFocusVisual->m_focusPrimitive->m_focusOuterPrimitive->updateProps(oldViewProps, newViewProps); + } } } if ((m_flags & ComponentViewFeatures::ShadowProps) == ComponentViewFeatures::ShadowProps) {