Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[useClickAway][Antd Input] 在 Antd Input 组件使用 useClickAway 页面报错 #2702

Open
justsso1 opened this issue Dec 17, 2024 · 0 comments

Comments

@justsso1
Copy link

报错:

image

最小可复现代码:

import { useClickAway } from 'ahooks';
import { Input } from 'antd';
import { useRef } from 'react';

const { TextArea } = Input;

const Comp = () => {
  const ref = useRef(null);

  useClickAway(() => {
    console.log('ClickAway');
  }, ref);

  return <TextArea ref={ref} />;
};

出错的代码位置是 packages/hooks/src/utils/getDocumentOrShadow.ts:

const checkIfAllInShadow = (targets: BasicTarget[]): boolean => {
  return targets.every((item) => {
    const targetElement = getTargetElement(item);
    if (!targetElement) return false;
    if (targetElement.getRootNode() instanceof ShadowRoot) return true; // 就是这里
    return false;
  });
};

使用原生的input元素是没有问题,但是使用 antd 的Input或者 TextArea 都会有问题。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant