React OnClick Event Handling

Events can be handled in React quite similar to the way we do in HTML, these events are click, change, mouseover, etc. But ‘React events’ are written in camelCase syntax.

For example “onClick” instead of “onclick” and the function which this event point to would be written in curly braces, for example, onClick={function}.

In this blog, we will talk only about ‘onClick‘ event handling. The onClick handler allows you to call a function and perform an action when an element is clicked.

Let’s learn about this with an example

Create a new project by the following command:

npm create-react-app reactOnClick

where reactOnClick is the project name.

Now, go to the project directory and start it-

cdreactOnClick
npm start

You should have your project started in the local host.

Now, in src/App.js, add the following code:

import React from 'react';

function App() {
	const testClick = () => {
		alert('Hey, you just clicked me');
	};
	return ( <
		div className = "App" >
		<
		button onClick = {
			testClick
		} >
		Click me!
		<
		/button> <
		/div>
	);
}
export default App;

In this, we have a button that when clicked calls the function “test click”, which alerts the user that he clicked the button.

You will see something like the following after clicking the button

Some common mistake people do is that they pass the function to the handler with parentheses like:

<button onClick={testClick()}>

what it would do is, call the “testClick” function on every render without even clicking it.

It is not necessary to call a function with a name, we can also call inline functions just like:

<button onClick={() => alert('Hey, you just clicked me')}>

So now you must be thinking, if we cannot pass the function name with parentheses then how can we pass arguments to a function?

It can be easily done with an inline function calling that function.

To be more clear, see the following code:

function App() {
	const testClick = (name) => {
		alert('Hello ' + name);
	};
	return ( <
		div className = "App" >
		<
		button onClick = {
			() => testClick('John')
		} >
		Click me!
		<
		/button> <
		/div>
	);
}

You will see the following in your browser:

Similarly, the states can be managed by ‘onClick’ events-

import React, {
	useState
} from 'react';

function App() {
	const [count, setCount] = useState(0);
	return ( <
		div className = "App" >
		<
		h1 > Button is clicked {
			count
		}
		times < /h1> <
		button onClick = {
			() => setCount(prevState =>
				prevState + 1)
		} >
		Click me!
		<
		/button> <
		/div>
	};
}
export default App;

And in the browser, we have-

So, Event handlers determine what action should be taken when an event occurs. The “onClick” event is used to listen for click events “onDOM” elements.

Hope you all have a clear picture about ‘onClick’ event handling. Will be sharing more such concepts in my future posts.

FAQ

Q1. How onClick works in React

Ans- The React onClick event handler enables you to call a function and trigger an action when a user clicks an element, such as a button, in your app.

Q2. How do you trigger a click event without clicking React?

Ans- change:

  1. <button type="button" onClick={this. myFunction(argument)}> myButton </button>
  2. to this:
  3. <button type="button" onClick={this. myFunction. bind(this, argument)}> myButton </button>

Q3. What is a preventDefault() in React?

Ans- The preventDefault() method cancels the event if it is cancelable, meaning that the default action that belongs to the event will not occur. For example, this can be useful when: Clicking on a "Submit" button, prevent it from submitting a form.