#1632·downshift

功能请求: 允许禁用"在外部单击"鼠标处理程序

作者: qbtf创建于 2025年1月4日更新于 2026年1月8日
标签needs discussion

首先,感谢令人印象深刻的组件库!Downshift 的无头架构使得我们可以从现有的 UI 库中轻松地创建具有深度自定义的下拉列表组件。我和我的团队使用 Chakra UI v3 和 Downshift 作为 PoC,制作了一个可重用的下拉列表组件,原型[^1]非常简洁。然而,有一个难以解决的小问题:Chakra UI 具有 onInteractOutside 机制(参见其 弹出组件),用于通过维护层级堆栈来管理弹出窗口。然而,Downshift 的 useMouseAndTouchTracker 处理器会与 Chakra UI 一起派发额外的模糊事件。我们曾试图在 reducer 中阻止它,但无法区分模糊事件是来自模糊回调还是来自常规的 InputBlur 状态变化。我可以想到两种方法。一种是向模糊回调添加额外的属性,以便我们可以忽略来自模糊回调的操作。另一种是添加一个选项,完全屏蔽模糊回调。无论哪种方式,都会使 Downshift 的下拉列表组件与实现此类机制的 UI 库更好地组合在一起。

内容来源: downshift-js/downshift