mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
Fix for multi-root apps with Modal (#46867)
Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/46867 In multi-root Android React Native apps (e.g., multiple ReactFragments), if the following sequence occurs: 1. a Modal is displayed via the secondary root 2. the secondary root is destroyed 3. the app is backgrounded 4. the app is foregrounded The LifecycleEventListener on the ReactModalHostView will fire, causing the Modal to be rehydrated in the onHostResume callback. Removing the lifecycle event listener when the modal is detached from the window resolves the issue. ## Changelog [Android][Fixed] Fix issues with Modals and lifecycle events in multi-surface apps Reviewed By: alanleedev Differential Revision: D64001103 fbshipit-source-id: 10f8304cd9cca0d5c90e39f5e361290f4fc35283
This commit is contained in:
committed by
Facebook GitHub Bot
parent
86d92e41d2
commit
1ffef5669c
+6
-2
@@ -112,7 +112,6 @@ public class ReactModalHostView(context: ThemedReactContext) :
|
||||
private var createNewDialog = false
|
||||
|
||||
init {
|
||||
context.addLifecycleEventListener(this)
|
||||
dialogRootViewGroup = DialogRootViewGroup(context)
|
||||
}
|
||||
|
||||
@@ -131,9 +130,14 @@ public class ReactModalHostView(context: ThemedReactContext) :
|
||||
dialogRootViewGroup.id = id
|
||||
}
|
||||
|
||||
protected override fun onAttachedToWindow() {
|
||||
super.onAttachedToWindow()
|
||||
(context as ThemedReactContext).addLifecycleEventListener(this)
|
||||
}
|
||||
|
||||
protected override fun onDetachedFromWindow() {
|
||||
super.onDetachedFromWindow()
|
||||
dismiss()
|
||||
onDropInstance()
|
||||
}
|
||||
|
||||
public override fun addView(child: View?, index: Int) {
|
||||
|
||||
Reference in New Issue
Block a user