反应本机模式不关闭

时间:2016-08-22 14:46:28

标签: javascript ios react-native

我正在等待多个异步请求返回时,在我的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,它按预期为假,但模态并没有消失。有关为什么会发生这种情况的任何想法?

2 个答案:

答案 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);
  })