Реагировать родной модал не открывается при загрузке экрана
Я хочу открыть модальный при загрузке экрана, поэтому я меняю состояние, когда компонент монтировал мой код:
государство:
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>
Модальное открытие, когда нажатие кнопки работает отлично, но при загрузке экрана не работает, что не так в моем коде
Заранее спасибо
3 ответа
Я решил эту проблему, используя простые приемы, я меняю состояние через 1 секунду, когда componentDidMount.Код:
componentDidMount() {
this.timer = setTimeout(() => {
this.setState({ isModalDate: !this.state.isModalDate });
}, 1000);
}
Это происходит в основном, когда у вас есть переход на экране. проверьте этот пост:ссылка
Ваше начальное состояние включает в себя isModalDate:true
, Поэтому, когда компонент монтируется и вызывает _onPressAccountdata
, isModalDate
переворачивается (как и ожидалось) и становится ложным.
Попробуйте установить isModalDate
изначально вместо false.