我正在等待多个异步请求返回时,在我的iOS应用中覆盖以下Modal组件。
<Modal transparent={true} visible={this.state.visible}>
<View style={{flex: 1}}>
<ActivityIndicator color="white" size="large"/>
</View>
</Modal>
所有请求返回后,this.state.visible设置为false。然而,即使在请求返回之后,大约50%的时间模态仍无限期地保留在屏幕上。我在我的渲染函数的顶部记录了this.state.visible,它按预期为假,但模态并没有消失。有关为什么会发生这种情况的任何想法?
答案 0 :(得分:3)
也许这就是我面临的同样问题。
我在关闭一个模态并打开另一个模态时遇到此问题,有些人正在使用模态和警报来获取此问题...
https://github.com/facebook/react-native/issues/10471
目前,解决方案是在操作之前超时(600ms应该解决它)。
答案 1 :(得分:1)
一种简单的解决方案,在再次显示该对话框之前,首先将其设置为具有时间延迟的不可见状态,然后再次显示该对话框
this.setState({
showPopUp: false,
}, () => {
let timer = setTimeout(() => {
this.setState({
showPopUp: true,
});
}, 300);
})