Как обратиться к элементу, на который повешено событие

В случае с нативным js я могу получить элемент через this:

document.querySelector('div').addEventListener('click', function() {
  console.log(this);
});
<div>
  <p>text</p>
</div>

Но я работаю с react, код выглядит как-то так:

function App() {
  function eventFunction(ev) {
    console.log(this, ev.target); // undefined, <p>text</p>
  }

  return (
    <>
      <div onClick={eventFunction}>
        <p>text</p>
      </div>
    </>
  );
}

Как в таком случае обратиться к элементу, на который повесили событие или может есть более правильный способ вешать события в react?


Ответы (1 шт):

Автор решения: Armen

как алтернатива

    export const App = () => {
  //хук для привязки контекста
  const myRef = useRef()
  

  function eventFunction(e) {
    console.log(e.currentTarget);
    console.log(myRef.current)
  }

  return (
      <div ref={myRef} onClick={eventFunction}>
        <p>text1</p>
      </div>
  );
}

плюс по идее все ивенты оборачиваются в реактовские так что обращение идет через virtual dom

→ Ссылка