Реагировать динамическое изменение состояния не просыпается
Предположим, у меня есть состояние, как показано ниже:
this.state = {
modal: ""
};
Тогда у меня есть кнопка, как показано ниже:
<button
type="button"
className="btn btn-primary"
onClick={this.createUser}
data-dismiss={this.state.modal}
> Save
</button>
Создать пользователя, как показано ниже:
createUser = () => {
this.setState({
modal: "modal"
});
};
Поэтому, когда я нажимаю кнопку, я хочу закрыть модальный загрузчик, определенный в формате кнопки сброса данных, потому что я назначил его модальным в createUser.
Но он работает только после 2-го нажатия кнопки сохранения. Зачем?
Кроме того, как я могу изменить один клик сам?
1 ответ
Настройка data-dismiss
в modal
не закроет сам модал. Второй клик вызывает bootstrap.js и закрывает модал.
Я думаю, что вы хотите получить ссылку на ваш мод, а затем закрыть его с помощью jQuery. Что-то вроде
// in your constructor
this.modalRef = React.createRef();
// class method
clickHandler() {
this.createUser();
$(this.ref.current).modal('hide');
}
// render function
return (
<div id="modal" ref={this.modalRef}>
...
</div>
)
Если вы используете много модальных загрузок, возможно, вы можете подумать об использовании реакционного ремня, который имеет удобные встроенные реквизиты для управления модальным режимом.