usehooks
                                
                                 usehooks copied to clipboard
                                
                                    usehooks copied to clipboard
                            
                            
                            
                        useEventListener: Unable to bind event to specific dom element.
As the title, when I use useEventListener to bind click event to dom element, it's not work.
function App() {
 const itemRef = useRef(null);
 const onMouseEnter = (e) => {
   console.log(e, 'enter');
 };
 const onMouseLeave = (e) => {
   console.log(e, 'leave');
 };
 useEventListener('mouseover', onMouseEnter, itemRef.current);
 useEventListener('mouseout', onMouseLeave, itemRef.current);
 return (
   <div className="App">
     <div ref={itemRef}>item</div>
   </div>
 );
}
Because ref.current from null to dom element, useEventListener will not update.
When I made the following adjustments, It will be OK.
- parameter: elementreplace byref;
function App() {
  const itemRef = useRef(null);
  const onMouseEnter = (e) => {
    console.log(e, 'enter');
  };
  const onMouseLeave = (e) => {
    console.log(e, 'leave');
  };
  useEventListener('mouseover', onMouseEnter, itemRef);
  useEventListener('mouseout', onMouseLeave, itemRef);
  return (
    <div className="App">
      <div ref={itemRef}>item</div>
    </div>
  );
}
- use ref.currentto bind event and adjust dependencies ofuseEffect;
function useEventListener(eventName, handler, ref) {
	const savedHandler = useRef();
	useEffect(() => {
		savedHandler.current = handler;
	}, [handler]);
	useEffect(() => {
		const element = ref ? ref.current : window;
		const isSupported = element && element.addEventListener;
		if (!isSupported) return;
		const eventListener = (event) => savedHandler.current(event);
                 element.addEventListener(eventName, eventListener);
		return () => {
			element.removeEventListener(eventName, eventListener);
		};
	}, [eventName, ref]);
}