У меня есть basi c HTML в моем проекте React, который выглядит так:
<div
onClick={(e) => this.handleRowClick(e, id)}>
<p>
<input
type="checkbox"
onChange={this.handleSelectOneChange} />
</p>
</div>
JS:
handleRowClick(event, item_id) {
// do stuff
}
handleSelectOneChange(event) {
event.stopPropagation();
}
Когда я нажимаю на флажок, он запускает handleRowClick
также в родительском Div
. Хотя у меня в дочерней функции есть stopPropagation()
. Однако, когда я вхожу в журнал, он вызывает родительскую функцию перед дочерней функцией (флажок), поэтому я могу понять, почему stopPropagation()
не работает.
Есть ли лучший способ сделать это? Или мне просто нужно будет проверить, какой тип элемента был нажат, прежде чем что-либо делать. Например, в функции родительского щелчка ничего не делайте, если «цель» - это флажок. Похоже, что это взлом, а не правильный способ справиться с этим.