Я пытаюсь обнаружить щелчок за пределами набора компонентов. У меня есть несколько компонентов с именем Block
, внутри компонента Artboard
. Внутри каждого компонента Block
это то, что у меня есть на данный момент:
const handleClickOutside = (e) => {
if (ref && !ref.contains(e.target)) {
setSelected(false);
}
}
Так что это работает, но всякий раз, когда я хочу фактически щелкнуть блок и выбрать его, handleClickOutside()
фактически срабатывает, потому что ящелкаю вне каждого другого компонента блока.
-------
| |
| |
| |
-------
^ This is a selected block
When I click outside of it, it will be deselected.
-------
| |
| |
| |
-------
^ But when I click on this block, I'm also clicking
outside the beforementioned block, which causes the
handleClickOutside function to fire.
Я просто хочу иметь возможность выбрать компонент, а затем отменить его выбор, щелкнув вне его, не затрагивая другие компоненты блока.