首页 > 解决方案 > React Hooks addEventListener 未定义

问题描述

我是 React 钩子的新手,我只是想知道为什么 addEventListener 是未定义的,即使我在useEffect.

function useHover() {
    const ref = useRef();
    const [hovered, setHovered] = useState(true);

    const enter = () => setHovered(true);
    const leave = () => setHovered(false);

    useEffect(() => {
      ref.current.addEventListener('mouseenter', enter);
      ref.current.addEventListener('mouseleave', leave);
      return () => {
        ref.current.removeEventListener('mouseenter', enter);
        ref.current.removeventListener('mouseleave', leave);
      };
    }, [ref]);

    return [ref, hovered];
  }`enter code here`

标签: reactjsreact-hooks

解决方案


您可以将这些命令嵌套在 componentDidMount/componentWillMount 中,并且应该暂存这些侦听器,但这不是最佳实践。

这是我在处理事件时遵循的文档。

网址: https ://reactjs.org/docs/handling-events.html


推荐阅读