Привет, начальное состояние emailSent: false
. Я хочу закрыть модальное окно через 5 секунд, когда this.state.emailSent: !== prevState.emailSent
. Я пробовал следующее, которое закрывается, как только this.state.emailSent's value is set to true
. Однако я хочу, чтобы модальное окно закрывалось через 5 секунд. Если я использую setTimeout()
, то он закрывает модальное окно через 5 секунд после того, как модальное окно было отрисовано, тогда как оно должно закрываться через 5 секунд после if (this.state.emailSent !== prevState.emailSent)
.
Если у вас есть вопросы, почему я использовал jQuery в React, потому что это модальное окно отображается с использованием начальной загрузки <Button data-target="#open-modal" data-toggle="modal">
. Он не визуализируется с использованием состояния отображения/скрытия.
componentDidUpdate(prevProps, prevState) {
if (this.state.emailSent !== prevState.emailSent) {
$("#export-modal").modal('hide');
}
}
используя setTimeout(), но он игнорирует оператор if и закрывается модально через 5 секунд после рендеринга на странице.
componentDidUpdate(prevProps, prevState) {
if (this.state.emailSent !== prevState.emailSent) {
setTimeout(() => {
$("#export-modal").modal('hide');
}, 5000);
}
}