-1

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

状态:

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>

当按钮单击时模式打开它可以正常工作但是当屏幕加载时它不起作用我的代码有什么问题

提前致谢

4

2 回答 2

0

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

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

于 2018-02-10T18:50:19.003 回答
0

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

componentDidMount() {

 this.timer = setTimeout(() => {
  this.setState({ isModalDate: !this.state.isModalDate  });
 }, 1000);
}
于 2018-02-12T05:43:13.047 回答