React Events


Like HTML DOM events, React can perform actions based on user events.

React has the same HTML events: click, change, mouseover etc.


Adding Events

React events are recorded with camelCase syntax:

onClick instead of onclick.

React event handles are enclosed within the folded parentheses:

onClick={shoot} instead of onClick="shoot()"


React
<button onClick={shoot}>Take the Shot!</button>
        

HTML
<button onclick="shoot()">Take the Shot!</button>
        


Example

Put the shoot function inside the Football component:

function Football() {
            const shoot = () => {
              alert("Great Shot!");
            }
          
            return (
              <button onClick={shoot}>Take the shot!</button>
            );
          }
          
ReactDOM.render(<Football />, document.getElementById('root'));
          


Passing Arguments

To pass an argument to the event handler, use the arrow function.


Example

Send "Goal!" as a parameter to the shoot function, using arrow function:

function Football() {
            const shoot = (a) => {
              alert(a);
            }
          
            return (
              <button onClick={() => shoot("Goal!")}>Take the shot!</button>
            );
          }
          
ReactDOM.render(<Football />, document.getElementById('root'));
          


React Event Object

Event hosts have access to the React event that started the task.

In our example event "click" event.


Example

Arrow Function: Sending the event object manually:

function Football() {
            const shoot = (a, b) => {
              alert(b.type);
              /*
              'b' represents the React event that triggered the function,
              in this case the 'click' event
              */
            }
          
            return (
              <button onClick={(event) => shoot("Goal!", event)}>Take the shot!</button>
            );
          }
          
ReactDOM.render(<Football />, document.getElementById('root'));
          

This will be helpful if we look at the Form in the next chapter.