我有一个结构如下的组件:
<View>
<Navigation/>
<Title/>
<FlatList/>
<Modal/>
</View>
每次我将模态的可见性状态设置为 false 时,模态都会按预期消失,但我的<Navigation/>
组件也会消失。它从字面上噗噗地消失而不卸载。我也用其他类型的导航组件替换了<Navigation/>
,它做了同样的事情。当我将多个<Navigations/>
放在屏幕上时,每次我这样做时this.setState({modalVisible: false})
它都会隐藏一个导航,然后在我再次将状态设置为 false 时隐藏另一个导航;一次将它们从屏幕上弹出一个。
模态功能以前没有这个错误。我已经更改了应用程序中的其他内容,但modalVisible
状态的指令太清楚了,不会出错。我只把它传递给<Modal/>
,因为它的visible
道具,仅此而已,没有其他地方。
有人可以提供为什么会发生这种情况的原因吗?!
因此,事实证明,解决方案是将模态定位在所有其他组件之上:
<View>
<Modal/>
<Navigation/>
<Title/>
<FlatList/>
</View>
这样做可以防止<Navigation/>
与<Modal/>
一起消失。然而,这背后的原因对我来说仍然是一个谜。因此,如果有人对此有解释,请启发我或我们。我发现很难相信这种"修复"以前没有胜过其他人。
附言双关语肯定是有意的。