【发布时间】:2020-06-18 02:15:23
【问题描述】:
我正在使用 React Native Web。我需要检测用户何时在组件外部单击。这仅在网络上加载,因此不必在本机上工作。
我一直在尝试使用这个钩子的一个版本: https://usehooks.com/useOnClickOutside/
在我的组件中:
useOnClickOutside(ref, () => setIsOpen(false));
在钩子里:
function useOnClickOutside(ref, handler) {
React.useEffect(
() => {
const listener = event => {
// Do nothing if clicking ref's element or descendent elements
if (!ref.current || ref.current.contains(event.target)) {
return;
}
handler(event);
};
document.addEventListener("mousedown", listener);
document.addEventListener("touchstart", listener);
return () => {
document.removeEventListener("mousedown", listener);
document.removeEventListener("touchstart", listener);
};
},
[ref, handler],
);
}
这给了我一个错误:
TypeError: ref.current.contains 不是函数
如果我登录ref.current,我可以看到没有contains 方法。这对于 React Native Web 是否存在?
【问题讨论】:
标签: react-native-web