屏幕加载时反应本机模态不打开

react native modal not open when screen load

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

状态:

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>

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

提前致谢

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

尝试将 isModalDate 最初设置为 false。

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

componentDidMount() {

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