Click Away Listener
Detecta si ocurrió un evento de clic fuera de un elemento. Escucha los clics que se producen en algún lugar del documento.
- 📦 1.5 kB comprimido.
- ⚛️ Support portals
Ejemplo
Por ejemplo, si necesita ocultar un menú desplegable cuando las personas hacen clic en cualquier otro lugar de su página:
<ClickAwayListener onClickAway={handleClickAway}>
<div className={classes.root}>
<button type="button" onClick={handleClick}>
Open menu dropdown
</button>
{open ? (
<div className={classes.dropdown}>
Click me, I will stay visible until you click outside.
</div>
) : null}
</div>
</ClickAwayListener>
Notice that the component only accepts one child element. You can find a more advanced demo on the Menu documentation section.
Portal
The following demo uses Portal
to render the dropdown into a new "subtree" outside of current DOM hierarchy.
<ClickAwayListener onClickAway={handleClickAway}>
<div>
<button type="button" onClick={handleClick}>
Open menu dropdown
</button>
{open ? (
<Portal>
<div className={classes.dropdown}>
Click me, I will stay visible until you click outside.
</div>
</Portal>
) : null}
</div>
</ClickAwayListener>