const handleClickOutside = useCallback((event) => {
debugger
if (comboboxRef.current && !comboboxRef.current.contains(event.target)) {
debugger
onHidecombxo();//触发隐藏
}
}, [onHidecombxo]);
useEffect(() => {
document.addEventListener('mouseup', handleClickOutside);
return () => document.removeEventListener('mouseup', handleClickOutside);
}, [handleClickOutside]);
以上代码是屏幕任意地方点击隐藏元素 点击下拉框的时候就不隐藏元素
<div
ref={comboboxRef} // 添加 ref
>
<Combobox
aria-labelledby={comboId}
{...props}
styles={comboBoxStyles} // 直接在组件内调整宽度
className="user-combox"
onClick={(event) => {
event.stopPropagation(); // 阻止事件传播
handcombox(event);
}}
>
{options.map((option) => (
<Option key={option} disabled={option === "Ferret"}
className={styles.combox}
onClick={(event) => {
event.stopPropagation(); // 阻止事件传播
onOptioncomboxdata(option);
}}
>
{option}
</Option>
))}
</Combobox>
</div>
描述:下拉框我明明是放在同一个div里面包裹起来的
我点击下拉都可以不触发隐藏操作 为啥我选择下拉框数据的时候就触发了隐藏操作