Skip to content
Related Articles

Related Articles

How to change states with onClick event in ReactJS using functional components ?

View Discussion
Improve Article
Save Article
Like Article
  • Last Updated : 31 Mar, 2022

In modern applications, writing functional components has become the ​standard way of writing React components as they are simply JavaScript functions that accept props and return a React element.

One can use Hooks only in the Functional component and this is a much easier way of managing the state as compared to the class component. With Hooks, state objects are completely independent of each other, so you can have as many state objects as you want. In a single page application, the useState hook is the best way to simply change the state with a click without reloading the entire page.

React useState hook: The useState hook takes the initial state as an argument and returns a variable with the current state value (not necessarily the initial state) and another function to update this value.

Example: Program to demonstrate the state change on click. In this example, we have two buttons descriptions and reviews and we want to change the content when the button is clicked.

Creating React Application:

Step 1: Create a React application using the following command.

npx create-react-app projectname

Step 2: After creating your project folder i.e. projectname, move to it using the following command.

cd projectname

Project Structure: It will look like this.

 

Step 3: To use useState you need to import useState from react as shown below:

import { useState } from "react";
const [description, setDescription] = useState(true);
const [reviews, setReviews] = useState(false);

Set click event handler function of the element upon which click, results in changing state. In the ComponentOne.js file write the following code.

Javascript




import { useState } from "react";
function ComponentOne() {
    const [description, setDescription] = useState(true);
    const [reviews, setReviews] = useState(false);
    const descriptionHandler = () => {
        setDescription(true);
        setReviews(false);
    };
    const reviewsHandler = () => {
        setDescription(false);
        setReviews(true);
    };
    return (
        <div>
            <button onClick={descriptionHandler}>
                Descriptions</button>
            <button onClick={reviewsHandler}>
                Reviews</button>
            {description && (
                <p>
                    This is a <b>descriptive</b> button
                    <h3>Descriptions:</h3>
                </p>
            )}
            {reviews && (
                <p>
                    This is a <b>Review</b> button
                    <h3>Reviews:</h3>
                </p>
            )}
        </div>
    );
}
  
export default ComponentOne;

Step 4: In this code, when we click a  button the React onClick event handler enables you to call a function and trigger an action, in our case suppose when the review button is clicked it calls a function reviewsHandler, and inside this function the content/state changes by using the useState hook.
 

Javascript




import ComponentOne from "./components/ComponentOne";
  
function App() {
    return (
      <div>
       <ComponentOne/>
      </div>
    );
}
  
export default App;

Step 5: Write the following code in index.js file. 
 

Javascript




import React from 'react';
import ReactDOM from 'react-dom';
import App from './App';
  
ReactDOM.render(<App />,document.getElementById('root'));

Step to run the application: Run the application using the following command:

npm start

Output: Now, open the URL http://localhost:3000/, you will see the following output.

 

Conclusion: Instead of a class Component, the functional component is a simple and extensible way of changing the state on click in ReactJS without reloading the entire page with the useState hook.


My Personal Notes arrow_drop_up
Recommended Articles
Page :

Start Your Coding Journey Now!