【问题标题】:react native modal not open when screen load屏幕加载时反应本机模式未打开
【发布时间】:2018-07-21 07:23:38
【问题描述】:

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

状态:

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>

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

提前致谢

【问题讨论】:

    标签: react-native react-component


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

      尝试将 isModalDate 最初设置为 false。

      【讨论】:

        猜你喜欢
        • 2019-01-30
        • 2023-01-06
        • 1970-01-01
        • 1970-01-01
        • 2019-05-06
        • 2023-03-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多