diff --git a/vnext/ReactUWP/Views/FlyoutViewManager.cpp b/vnext/ReactUWP/Views/FlyoutViewManager.cpp index 013529ec7fc..dc0c852b9d1 100644 --- a/vnext/ReactUWP/Views/FlyoutViewManager.cpp +++ b/vnext/ReactUWP/Views/FlyoutViewManager.cpp @@ -96,6 +96,7 @@ class FlyoutShadowNode : public ShadowNodeBase void AddView(ShadowNode& child, int64_t index) override; void createView() override; static void OnFlyoutClosed(IReactInstance& instance, int64_t tag, bool newValue); + void onDropViewInstance() override; void removeAllChildren() override; void updateProperties(const folly::dynamic&& props) override; @@ -138,7 +139,7 @@ void FlyoutShadowNode::createView() m_flyout.Closing([=](winrt::FlyoutBase /*flyoutbase*/, winrt::FlyoutBaseClosingEventArgs args) { auto instance = wkinstance.lock(); - if (!m_updating && instance != nullptr && !m_isLightDismissEnabled && m_flyout.IsOpen()) + if (!m_updating && instance != nullptr && !m_isLightDismissEnabled && m_isOpen) { args.Cancel(true); } @@ -158,6 +159,11 @@ void FlyoutShadowNode::createView() instance.DispatchEvent(tag, "topDismiss", std::move(eventData)); } +void FlyoutShadowNode::onDropViewInstance() { + m_isOpen = false; + m_flyout.Hide(); +} + void FlyoutShadowNode::removeAllChildren() { m_flyout.ClearValue(winrt::Flyout::ContentProperty());