Реагировать родной модал не открывается при загрузке экрана

Я хочу открыть модальный при загрузке экрана, поэтому я меняю состояние, когда компонент монтировал мой код:

государство:

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.

Другие вопросы по тегам