我想在屏幕加载时打开模态,所以当组件安装我的代码时我改变状态是:
状态:
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>
当按钮单击它完美地工作时模态打开但是当屏幕加载它不能正常工作时我的代码出错了
提前感谢
答案 0 :(得分:0)
您的初始状态包括isModalDate:true
。因此,当组件安装并调用_onPressAccountdata
时,isModalDate
会被翻转(如预期的那样)并变为false。
请尝试将isModalDate
初始设置为false。
答案 1 :(得分:0)
我使用简单的技巧解决了这个问题,我在1秒后更改了componentDidMount时的状态。 的代码:强>
componentDidMount() {
this.timer = setTimeout(() => {
this.setState({ isModalDate: !this.state.isModalDate });
}, 1000);
}