Я использую модальный режим, но моя кнопка для закрытия модального окна не запускает onClick={this.handleCloseModal}, что делает кнопку внутри модального полностью невосприимчивой. Я пробовал разные вещи в течение нескольких часов и не могу понять, почему это не работает. В консоли не появляется никаких ошибок, и я не могу ничего записать в консоль... Пожалуйста, смотрите код ниже, я только что бился головой о стену без ответов. Я новичок, чтобы реагировать, но чувствую, что это должно работать, так как ошибок нет. Заранее спасибо!
class Project extends React.Component {
constructor () {
super();
this.state = {
showModal: false
};
this.handleOpenModal = this.handleOpenModal.bind(this);
this.handleCloseModal = this.handleCloseModal.bind(this);
}
handleOpenModal () {
this.setState({ showModal: true });
}
handleCloseModal () {
this.setState({ showModal: false });
}
componentWillMount() {
ReactModal.setAppElement('body');
}
render() {
const details = this.props.details;
return (
<li className="Project" onClick={this.handleOpenModal}>
<img className="Project-image" src={'projects/' + details.image} alt={details.name}/>
<div className="Project-overlay">
<p>{details.name}</p>
</div>
<div >
<ReactModal
isOpen={this.state.showModal}
contentLabel="This is my Mods"
shouldCloseOnOverlayClick={true}
onRequestClose={this.handleCloseModal}
>
<div className="modal-header">
<h3>{details.name}</h3>
</div>
<div className="modal-body">
</div>
<div className="modal-footer">
<button onClick={this.handleCloseModal}>Close Modal</button>
</div>
</ReactModal>
</div>
<div className="Project-tag">
<p>{details.tag}</p>
</div>
</li>
)
}
}
onRequestClose
работает, и, соответственно, работает ваш обработчик? - person Thomas Hennes   schedule 01.12.2017handleCloseModal
в порядке, иначе реквизитonRequestClose
не работал бы. Это и было целью моего вопроса. Я думаю, что ответ Арбера - самая многообещающая зацепка. Либо обработчик тега li onClick фиксирует событие, а обработчик тега кнопки onClick никогда не вызывается, либо он вызывается, но событие все равно передается обработчику тега li (поэтому модальное окно закрывается и снова открывается мгновенно, возможно, слишком быстро для вас). уведомление). Вы также можете поместить console.log или даже оператор window.alert в оба ваших обработчика, чтобы отслеживать, когда каждый из них действительно вызывается. - person Thomas Hennes   schedule 01.12.2017