Реакция - Оборачивание обработчика dev onClick перед внутренним флажком - PullRequest
1 голос
/ 05 апреля 2020

У меня есть div с обработчиком onClick, который переходит на подстраницу при нажатии на нее. Однако есть также флажок для выбора, содержащийся в этом div с обработчиком onChange.

Ожидаемое поведение : сначала включается флажок обработчика onChange, и я могу остановить распространение на обработчик событий упаковочного div.

Фактическое поведение : обработчик события div запускается первым, и при переходе на подстраницу обработчик флажка не выполняется вообще.

Как я могу решить эту проблему?

const onClick = () => props.history.push({ pathname: `/mySubpage/${resource._id}` });

const onCheckbox = (e) => {
    // this should prevent the onClick handler to be triggered
    e.stopPropagation();
    setIsSelected(!isSelected);
}

<div onClick={onClick}>
    ...
    <Checkbox onChange={onCheckbox}/>
    ...
</div>

1 Ответ

0 голосов
/ 05 апреля 2020

Пробовали ли вы setTimeOut, если нет, тогда попробуйте ... onClick = () => {setTimeOut (() => props.history.pu sh ({pathname: /mySubpage/${resource._id}}), 100); } // я думаю, что это должно сработать, потому что это задержит метод props.history.pu sh () и в этом будет обработан другой целый javascript, и в конце ваш метод div onclick будет завершен. В противном случае установите любое фиктивное состояние по истечении установленного времени

...