Как упростить функции событий в React DOM Listeners - PullRequest
0 голосов
/ 17 марта 2019

У меня есть следующий код, который объявляет слушателя для мыши в и из изображения.Я делаю это с именованной функцией, а не с простой лямдой, чтобы я мог нести ссылку, а затем удалить слушателя при удалении компонента.

Есть ли короткий способ получитьСсылка на обработчики проще, чем я делаю здесь ?Я надеюсь, что у меня не должно быть явного определения функций, подобных этому.Я предпочитаю оставить определение функции внутри добавления события, если это возможно.

Это похоже на церемонию, я надеюсь, что смогу сократить ее.

const ImageToggler = ({ primaryImg, mouseOverImg }) => {
  const imageRef = useRef(null);

  const handleMouseOverHandler = () => {
    imageRef.current.src = mouseOverImg;
  };

  const handleMouseOutHandler = () => {
    imageRef.current.src = primaryImg;
  };

  useEffect(() => {
    imageRef.current.addEventListener(
      "mouseover",
      handleMouseOverHandler,
      true
    );
    imageRef.current.addEventListener("mouseout", handleMouseOutHandler, true);
    return () => {
      imageRef.current.removeEventListener(
        "mouseover",
        handleMouseOverHandler,
        false
      );
      imageRef.current.removeEventListener(
        "mouseout",
        handleMouseOutHandler,
        false
      );
    };
  }, []);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...