当屏幕加载时,本机模态未响应

时间:2018-02-10 18:30:58

标签: react-native react-component

我想在屏幕加载时打开模态,所以当组件安装我的代码时我改变状态是:

状态:

this.state = {
  orientation: this.isPortrait() ? 'portrait' : 'landscape',
  isModalDate:true 
};

组件代码:

componentDidMount(){
  this._onPressAccountdata();
}

更改状态功能:

_onPressAccountdata() {
  //Alert.alert("1");
  this.setState({ isModalDate: !this.state.isModalDate  });
  console.log("modal state"+this.state.isModalDate)
}

渲染模式

<Modal
  isVisible={this.state.isModalDate}
  onSwipe={() => this.setState({ isModalDate: false })}
  swipeDirection="left"
  style={styles.modal_css}
  supportedOrientations={['portrait', 'landscape']}
>
 {...}
</Modal>

当按钮单击它完美地工作时模态打开但是当屏幕加载它不能正常工作时我的代码出错了

提前感谢

2 个答案:

答案 0 :(得分:0)

您的初始状态包括isModalDate:true。因此,当组件安装并调用_onPressAccountdata时,isModalDate会被翻转(如预期的那样)并变为false。

请尝试将isModalDate初始设置为false。

答案 1 :(得分:0)

我使用简单的技巧解决了这个问题,我在1秒后更改了componentDidMount时的状态。 的代码:

componentDidMount() {

 this.timer = setTimeout(() => {
  this.setState({ isModalDate: !this.state.isModalDate  });
 }, 1000);
}