State in React js

    In this React js tutorial, we will learn all about State in React js like What is the state in react js, and how to use it in react js. Also, we will cover the below topic:

    • What is the state in react js
    • Why state in react js
    • props vs state react js
    • State in react js class component
    • update state in react js
    • default state in react js
    • reset state react js
    • react js state array
    • react js state array update
    • react js add state array
    • Remove items from an array in React js state
    • react js filter state
    • React state array length
    • React js pass state from child to parent

    What is a state in react js

    React js state is another built-in object, allowing components to create and manage their own data. Unlike props, components cannot pass the data to the state but can be internally created and managed.

    Why state in React js

    With state, we can keep track in React of how data changes over time in React application. In React managing state is a crucial skill because it allows us to make interactive React components and dynamic React web applications.

    React state is used for everything from tracking form inputs to recording dynamic data from an API. To manage state in the functional component we need to know React Hooks.

    State in React js
    State in React js

    Props vs State in React js

    Here we will see the difference between props and state in react js.

    Prop vs State in React js

    StateProps
    State changes can be asynchronousAs props are noneditable, so we can read only.
    States are mutable i.e. the value of a state can be changedProps are immutable i.e. the value of props cannot be changed
    The state can be accessed by Functional component: useState Hook, Class component: this. stateprops can be accessed using this. props in both the component (Functional and class)
    As the state holds information about the componentsProps allow us to pass data as an argument from one component to another component
    In React state cannot be accessed by the child componentIn React props can be accessed by the child component
    The React States may be used for rendering dynamic adjustments with the component.With props, we can communicate between two components.
    The state cannot make the program reusableprops can make the program reusable
    The State is inner and managed through the React Component itself.Props are external and managed by something that renders the component
    State vs props in react

    Read Components in React js

    State in React js class component

    Here we will see how to use state in React js class component.

    In this example, we will create a counter component, to get the actual count value we need to create a state object we will use the Constructor. A constructor is nothing but a method that is used to initialize an object state in class.

    Let’s say index.html contains the below statement inside the body tag:

     <div id="root"></div>

    Next in the index.js file write the below code:

    import React from 'react';
    import ReactDOM from 'react-dom/client';
    import './index.css';
    import App from './App';
    import reportWebVitals from './reportWebVitals';
    
    const root = ReactDOM.createRoot(document.getElementById('root'));
    root.render(
        <App />
      
    );
    reportWebVitals();

    Next, in the Counter component, write the below code:

    import { Component } from "react";
    
    class Counter extends Component{
        constructor(){
            super();
            this.state= {
                counter:0,
            };
        }
       
        render(){
            return <h3>Count value is : {this.state.counter}</h3>
        }
    }
    export default Counter;

    Now run the app with the npm start command, to render the above code on the page.

    State in React js class component
    State in React js class component

    This is how we can define the state in React js.

    Read State in React js Hooks

    Update state in react js

    Here we will see how to update state value in React js

    We will use the above Counter example, here every time we will click on the button, the counter value gets incremented. As in the above example, the counter value is set to 0, so to update the state of the counter we will use the setState method.

    Let’s say index.html contains the below statement inside the body tag:

     <div id="root"></div>

    Next in the index.js file write the below code:

    import React from 'react';
    import ReactDOM from 'react-dom/client';
    import './index.css';
    import App from './App';
    import reportWebVitals from './reportWebVitals';
    
    const root = ReactDOM.createRoot(document.getElementById('root'));
    root.render(
        <App />
      
    );
    reportWebVitals();

    Next in the Counter js file write the below code to update the counter state value.

    import { Component } from "react";
    
    class Counter extends Component{
        constructor(){
            super();
            this.state= {
                counter:0,
            };
        }
        
        increment(){
            this.setState({
                counter: this.state.counter +1,
            });
        }
       
        render(){
            return (
            <div>
            <h1>Count value is : {this.state.counter}</h1>
        <button onClick={()=> this.increment()}>Click</button>
            </div>
            )
        }
    }
    export default Counter;

    Now start the application using the npm start command, and then click on the button to increment the value.

    Update state in react js
    Update state in react js

    This is an example of how we can update the state in React js.

    Read What is JSX in React js

    Default state in react js

    Here we will see how to set the default state in react js.

    For example, we have a Customer component, in this one set of objects contains the default value and another object contains the updated value. So by default, it will render the default information, once you click on the button it will show you the updated value. Every time we will refresh the page it will show you the Default information.

    Let’s say index.html contains the below statement inside the body tag:

     <div id="root"></div>

    Next in the index.js file write the below code:

    import React from 'react';
    import ReactDOM from 'react-dom/client';
    import './index.css';
    import App from './App';
    import reportWebVitals from './reportWebVitals';
    
    const root = ReactDOM.createRoot(document.getElementById('root'));
    root.render(
        <App />
      
    );
    reportWebVitals();

    Next, the App component is the default component and contains below set of code:

    import './App.css';
    
    import Customer from './Components/Customer';
    
    function App() {
      return (
        <div className="App">
          <Customer></Customer>
    
        </div>
      );
    }
    export default App

    Next, in the Customer.js file write the below code to update the Customer information.

    import {Component} from 'react'
    
     var initialState = {
        firstName: "Alex",
        lastName :"Cubon",
        age      : 28,
        address  : "Italy",
    }
    var updateValue={
        firstName: "Ruby",
        lastName:"Petisson",
        age:36,
        address:"Canada",
    }
    
    class Customer extends Component {
        constructor(){
            super();
            
    this.state = {
            ...initialState
        }
    }
        // Set state to default state
        setDefaultState = () => {
            this.setState({
                ...initialState
            });
            
        }
        //update the state
        updateValue= ()=>{
            this.setState({
                ...updateValue
            })
        }
        render() {
            return(
                <div>
             <h2>Customer details: </h2>
             <p> First name:{this.state.firstName} </p> <br></br>
                 <p>last name:{this.state.lastName} </p><br></br>
                <p>Age:{this.state.age}</p><br></br>
                <p>Address: {this.state.address}</p> <br></br>
             <button onClick={()=> this.updateValue()}> Click </button>
                </div>
            );
        }
    }
    
    export default Customer;

    Now run the application using the npm start command, you can see the default value is showing, like below, and if you click on the button it will show you the updated value.

    default value in react js
    the default value in react js

    Next click on the Refresh icon to show you the default state value.

    default state value in react js
    default state value in react js

    This is an example of the default state value in react js.

    Read Props in React js

    Reset state react js

    Here we will see how to reset to the initial state in React js

    For example, we will reset the component to the initial state in React js.

    Let’s say index.html contains the below statement inside the body tag:

     <div id="root"></div>

    Next in the index.js file write the below code:

    import React from 'react';
    import ReactDOM from 'react-dom/client';
    import './index.css';
    import App from './App';
    import reportWebVitals from './reportWebVitals';
    
    const root = ReactDOM.createRoot(document.getElementById('root'));
    root.render(
        <App />
      
    );
    reportWebVitals();

    Next, the App component is the default component and contains the below set of code:

    import './App.css';
    
    import Customer from './Components/Customer';
    
    function App() {
      return (
        <div className="App">
          <Customer></Customer>
    
        </div>
      );
    }
    export default App

    Next, in the Customer.js file write the below code to update and reset the Customer information.

    import {Component} from 'react'
    
     var initialState = {
        firstName: "Alex",
        lastName :"Cubon",
        age      : 28,
        address  : "Italy",
    }
    
    
    class Customer extends Component {
        constructor(){
            super();
            
    this.state = {
            ...initialState
        }
    }
       
    
    //reset to initial state
        resetState = () => {
            this.setState({
                ...initialState
            });
        }
        //update the state
        updateValue= ()=>{
            this.setState({
    
    firstName: "John" , lastName:"Biden", Age:39, address:"America"
            })
        }
    
        render() {
            return(
                <div>
             <h2>Customer details: </h2>
           <p> First name:{this.state.firstName} </p> <br></br>
           <p>last name:{this.state.lastName} </p><br></br>
           <p>Age:{this.state.age}</p><br></br>
           <p>Address: {this.state.address}</p> <br></br>
             <button onClick={()=> this.updateValue()}>Update </button> 
             <button onClick={()=> this.resetState()}> Reset </button>
                </div>
            );
        }
    }
    export default Customer;

    Now run the application using the npm start command, then click on the update button to update the state value.

    Reset state react js
    Reset state react js

    Next click on the Reset button, to come to the initial state, which you can see in the below screenshot.

    Reset state value  react js
    Reset state value react js

    This is an example of a Reset state value in React js.

    Read What is react js and react native

    React js state array

    Here we will see an example of how to define an array using React js state.

    Example 1: Define an Array in React state

    Let’s say index.html contains the below statement inside the body tag:

     <div id="root"></div>

    Next in the index.js file write the below code:

    import React from 'react';
    import ReactDOM from 'react-dom/client';
    import './index.css';
    import App from './App';
    import reportWebVitals from './reportWebVitals';
    
    const root = ReactDOM.createRoot(document.getElementById('root'));
    root.render(
        <App />
      
    );
    reportWebVitals();

    Next, the App component is the default component contained below set of code:

    import './App.css';
    import ArrayExample from './Components/ArrayExample';
    
    function App() {
      return (
        <div className="App">
          <ArrayExample></ArrayExample>
    
        </div>
      );
    }
    export default App;
    

    Now in the ArrayExample component having the below code, the map () is used to iterate over an array and manipulate the items.

    import { Component } from "react"
    class ArrayExample extends Component {
        constructor(props) {
          super(props);
      
          this.state = {
            list: [{id: "a", name:"Alex"}, {id:"b",name:"Ron"},{id:"c",name: "John"}],
          };
        }
      
        render() {
          return (
            <div>
              <ul>
                {this.state.list.map(item => (
                  <li key={item.id}>{item.name}</li>
                ))}
              </ul>
            </div>
          );
        }
      }
    
    export default ArrayExample;

    Now run the app using the npm start command, and you can see the below result on the page:

    React js state array
    React js state array

    Example 2: Define the Empty array state in React js

    Here we will see how to initialize an empty array state in react js

    Let’s say index.html contains the below statement inside the body tag:

     <div id="root"></div>

    Next in the index.js file write the below code:

    import React from 'react';
    import ReactDOM from 'react-dom/client';
    import './index.css';
    import App from './App';
    import reportWebVitals from './reportWebVitals';
    
    const root = ReactDOM.createRoot(document.getElementById('root'));
    root.render(
        <App />
      
    );
    reportWebVitals();

    Next, the App component is the default component contained below set of code:

    import './App.css';
    import ArrayExample from './Components/ArrayExample';
    
    function App() {
      return (
        <div className="App">
          <ArrayExample></ArrayExample>
    
        </div>
      );
    }
    export default App;
    

    Now in the ArrayExample component, having an empty state array, so it will not render anything as the array is empty, write the below code:

    import { Component } from "react"
    class ArrayExample extends Component {
        constructor(props) {
          super(props);
      
    //empty array define
          this.state = {
            list:[],
          };
        }
      
        render() {
          return (
            <div>
              <ul>
                {this.state.list.map(item => (
                  <li key={item}>{item}</li>
                ))}
              </ul>
            </div>
          );
        }
      }
    
    export default ArrayExample;

    As the array is empty, the map() in render(), suppose to return the item, map() will iterate through the array and render no item.

    Read Conditional rendering react js

    Example 3: Null state array in React js

    Let’s say index.html contains the below statement inside the body tag:

     <div id="root"></div>

    Next in the index.js file write the below code:

    import React from 'react';
    import ReactDOM from 'react-dom/client';
    import './index.css';
    import App from './App';
    import reportWebVitals from './reportWebVitals';
    
    const root = ReactDOM.createRoot(document.getElementById('root'));
    root.render(
        <App />
      
    );
    reportWebVitals();

    Next, the App component is the default component contained below set of code:

    import './App.css';
    import ArrayExample from './Components/ArrayExample';
    
    function App() {
      return (
        <div className="App">
          <ArrayExample></ArrayExample>
    
        </div>
      );
    }
    export default App;
    

    Now in the ArrayExample component, has a null state array, which is a fallback for the null array.

    class ArrayExample extends Component {
        constructor(props) {
          super(props);
      
          this.state = {
            list:null
          };
        }
      
        render() {
          return (
            <div>
              <ul>
                {(this.state.list || []).map(item => (
                  <li key={item}>{item}</li>
                ))}
              </ul>
            </div>
          );
        }
      }
    
    export default ArrayExample;

    The above code renders the null on the page because the list is assigned as null, and this is the only way we can retreat the array as null.

    Example 4: Push an empty array in React state

    Here we will see how to push an empty array in React state.

    For example, we will create a set of names and the list of names will render on the page, to clear names we will push the empty array to the button click event.

    Let’s say index.html contains the below statement inside the body tag:

     <div id="root"></div>

    Next in the index.js file write the below code:

    import React from 'react';
    import ReactDOM from 'react-dom/client';
    import './index.css';
    import App from './App';
    import reportWebVitals from './reportWebVitals';
    
    const root = ReactDOM.createRoot(document.getElementById('root'));
    root.render(
        <App />
      
    );
    reportWebVitals();

    Next, the App component is the default component contained below set of code:

    import './App.css';
    import ArrayExample from './Components/ArrayExample';
    
    function App() {
      return (
        <div className="App">
          <ArrayExample></ArrayExample>
    
        </div>
      );
    }
    export default App;

    Now in the ArrayExample component, we will push an empty array to manipulate the current state using this.setState(). And we will assign the empty state to the button.

    import { Component } from "react"
    class ArrayExample extends Component {
        constructor(props) {
          super(props);
      
          this.state = {
            names:["Alex","Ruby","Celia","John"],
          };
        }
    
    //method to clear items in Array
        onClearArray=()=>{
          this.setState({names:[]});
        }
      
        render() {
          return (
            <div>
              <ul>
                {this.state.names.map(item => (
                  <li key={item}>{item}</li>
                ))}
              </ul>
              <button type="button" onClick={this.onClearArray}>
              Clear names
            </button>
            </div>
          );
        }
      }
    
    export default ArrayExample;

    Now run the react application, you can see the above codes render on the page below.

    array in React js state
    array in React js state

    Read Handling Events in React js

    Example 5: Default array state in React js

    For example, we will define the initial state array and then we will clear the array using the button event, to get back to the initial array we will use the Reset array button.

    Let’s say index.html contains the below statement inside the body tag:

     <div id="root"></div>

    Next in the index.js file write the below code:

    import React from 'react';
    import ReactDOM from 'react-dom/client';
    import './index.css';
    import App from './App';
    import reportWebVitals from './reportWebVitals';
    
    const root = ReactDOM.createRoot(document.getElementById('root'));
    root.render(
        <App />
      
    );
    reportWebVitals();

    Next, the App component is the default component contained below set of code:

    import './App.css';
    import ArrayExample from './Components/ArrayExample';
    
    function App() {
      return (
        <div className="App">
          <ArrayExample></ArrayExample>
    
        </div>
      );
    }
    export default App;

    Now in the ArrayExample component, we declare a default array and then reset to the default array using a button event.

    import { Component } from "react"
    //default array
    const names=["Alex","Ruby","Celia","John"]
    class ArrayExample extends Component {
        constructor(props) {
          super(props);
      
          this.state = {
            names,
          };
        }
    // clear array items
        onClearArray=()=>{
          this.setState({names:[]});
        }
    //show default array items
        onResetArray=()=>{
          this.setState({names});
        }
      
        render() {
          return (
            <div>
              <ul>
                {this.state.names.map(item => (
                  <li key={item}>{item}</li>
                ))}
              </ul>
              <button type="button" onClick={this.onClearArray}>
              Clear names
            </button>
    
            <button type="button" onClick={this.onResetArray}>
              Reset names
            </button>
            </div>
          );
        }
      }
    
    export default ArrayExample;

    Now, run the flow using the npm start command, and you can see the default array on the screen, then click on clear items to clear all items.

    state array react
    state array react

    Next click on the Reset names to see the default names on the page.

    state array react js
    state array react js

    Example 6: Initial object state in React js

    In the above example, we see only how to reset the state for the array. But we can apply it to our complete state too, by extracting the entire initial state object.

    Let’s say index.html contains the below statement inside the body tag:

     <div id="root"></div>

    Next in the index.js file write the below code:

    import React from 'react';
    import ReactDOM from 'react-dom/client';
    import './index.css';
    import App from './App';
    import reportWebVitals from './reportWebVitals';
    
    const root = ReactDOM.createRoot(document.getElementById('root'));
    root.render(
        <App />
      
    );
    reportWebVitals();

    Next, the App component is the default component contained below set of code:

    import './App.css';
    import ArrayExample from './Components/ArrayExample';
    
    function App() {
      return (
        <div className="App">
          <ArrayExample></ArrayExample>
    
        </div>
      );
    }
    export default App;

    Now in the ArrayExample component, we declare an initial state object and then reset to the default array using a button event.

    import { Component } from "react"
    const initialState={ names:["Alex","Ruby","Celia","John"]}
    class ArrayExample extends Component {
        constructor(props) {
          super(props);
      
          this.state = initialState
        }
        onClearArray=()=>{
          this.setState({names:[]});
        }
        onResetArray=()=>{
          this.setState({...initialState});
        }
      
        render() {
          return (
            <div>
              <ul>
                {this.state.names.map(item => (
                  <li key={item}>{item}</li>
                ))}
              </ul>
              <button type="button" onClick={this.onClearArray}>
              Clear names
            </button>
    
            <button type="button" onClick={this.onResetArray}>
              Reset names
            </button>
            </div>
          );
        }
      }
    
    export default ArrayExample;

    Now run the app using the npm start command, you can see the initial state object on the page. Then click on clear names and names get cleared.

    state array react
    state array react

    And click on the Reset names button, and you can see the initial default names on the page.

    state array react js
    state array react js

    These are examples of React js arrays.

    Read React js form tutorial

    React js state array update

    Here we will see how to update the state of an array using React js.

    So here we will see go through two cases to update items in an Array:

    • Update all items in an array in React js state
    • Update a single item in an array React js state

    Update all items in an array in React js state

    Now we will see how to update all items in an array in React js state.

    For example, we will take an array of Persons’ ages, and we will update the age with a button click.

    Let’s say index.html contains the below statement inside the body tag:

     <div id="root"></div>

    Next in the index.js file write the below code:

    import React from 'react';
    import ReactDOM from 'react-dom/client';
    import './index.css';
    import App from './App';
    import reportWebVitals from './reportWebVitals';
    
    const root = ReactDOM.createRoot(document.getElementById('root'));
    root.render(
        <App />
      
    );
    reportWebVitals();

    Next, the App component is the default component contained below set of code:

    import './App.css';
    import PersonAge from './Components/PersonAge';
    
    function App() {
      return (
        <div className="App">
          <PersonAge></PersonAge>
    
        </div>
      );
    }
    export default App;

    Now in the PersonAge component, we will update the person’s age +1 with map(), and it will return a new array without mutating the previous array.

    import React, { Component } from 'react';
    
    class PersonAge extends Component {
      constructor(props) {
        super(props);
    
        this.state = {
          age: [42, 33, 68],
        };
      }
    
      onUpdateItems = () => {
        this.setState(state => {
          const age = state.age.map(item => item + 1);
    
          return {
            age,
          };
        });
      };
    
      render() {
        return (
          <div>
            <ul>
              {this.state.age.map(item => (
                <li key={item}>The person is {item} years old.</li>
              ))}
            </ul>
    
            <button type="button" onClick={this.onUpdateItems}>
              Make everyone one year older
            </button>
          </div>
        );
      }
    }
    
    export default PersonAge;

    Now run the app with the npm start command, and you can see the person’s age list, with a button to make persons age one year old.

    React js state array update
    React js state array update

    This is an example of React js state array update.

    Update a single item in an array React js state

    Here we will see how to update a single item in an array React js state.

    In the above example, we see how to update all items in an array, so here we will only update a single item(age) in an array.

    Let’s say index.html contains the below statement inside the body tag:

     <div id="root"></div>

    Next in the index.js file write the below code:

    import React from 'react';
    import ReactDOM from 'react-dom/client';
    import './index.css';
    import App from './App';
    import reportWebVitals from './reportWebVitals';
    
    const root = ReactDOM.createRoot(document.getElementById('root'));
    root.render(
        <App />
      
    );
    reportWebVitals();

    Next, the App component is the default component contained below set of code:

    import './App.css';
    import PersonAge from './Components/PersonAge';
    
    function App() {
      return (
        <div className="App">
          <PersonAge></PersonAge>
    
        </div>
      );
    }
    export default App;

    Now, in the PersonAge component, we will update the item in the array, to recognize it later in the updated item() in the class method. With the map method, we will iterate over all the items in the array and we can update the needed item with the conditional logic.

    import React, { Component } from 'react';
    class PersonAge extends Component {
        constructor(props) {
          super(props);
      
          this.state = {
            age: [44, 36, 66],
          };
        }
      
        updateItem = i => {
          this.setState(state => {
            const age = state.age.map((item, j) => {
              if (j === i) {
                return item + 1;
              } else {
                return item;
              }
            });
      
            return {
              age,
            };
          });
        };
      
        render() {
          return (
            <div>
              <ul>
                {this.state.age.map((item, index) => (
                  <li key={item}>
                    The person is {item} years old.
                    <button
                      type="button"
                      onClick={() => this.updateItem(index)}
                    >
                      Make me one year older
                    </button>
                  </li>
                ))}
              </ul>
            </div>
          );
        }
      }
    
    export default PersonAge;

    Now run the app you can see the person’s age and also to update the item, you can click on the button. So, to update each item, click on the respective button. In this case, we will update the age from 36 to 37.

    React js state array update single item
    React js state array update single item

    This is an example of React js state array update single item.

    Read React js cancel button

    React js add state array

    Here we will see how to add an item in an array in React Js state.

    For example, we have a list of names, and we will add names to the array using concat().

    So in React, to add the item to an array, we cannot use the push() method because it mutates the array in React js. It does not depart the array intact however adjustments it. Instead, there ought to be a brand new array created that’s used to replace the state.

    Even if we will use the Push(), it won’t work, not return an updated array. So, instead of push(), we will use concat () to add an item to an array.

    Let’s say index.html contains the below statement inside the body tag:

     <div id="root"></div>

    Next in the index.js file write the below code:

    import React from 'react';
    import ReactDOM from 'react-dom/client';
    import './index.css';
    import App from './App';
    import reportWebVitals from './reportWebVitals';
    
    const root = ReactDOM.createRoot(document.getElementById('root'));
    root.render(
        <App />
      
    );
    reportWebVitals();

    Next, the App component is the default component contained below set of code:

    import './App.css';
    import  PersonName from './Components/ PersonName';
    
    function App() {
      return (
        <div className="App">
          < PersonName></ PersonName>
    
        </div>
      );
    }
    export default App;

    Now in the PersonName components contains the below code to add item to array in React js state.

    import React, { Component } from 'react';
    
    class PersonName extends Component {
      constructor(props) {
        super(props);
    
        this.state = {
          value: '',
          names: ['Alex', 'Bob', 'Chow'],
        };
      }
    
    // to get the target value
      onChangeValue = event => {
        this.setState({ value: event.target.value });
      };
    
    // add item to array method
      onAddItem = () => {
        // not allowed AND not working
        this.setState(state => {
          const names = state.names.concat(state.value);
    
          return {
            names,
            value: '',
          };
        });
      };
    
      render() {
        return (
          <div>
            <ul>
              {this.state.names.map(item => (
                <li key={item}>{item}</li>
              ))}
            </ul>
    
            <input
              type="text"
              value={this.state.value}
              onChange={this.onChangeValue}
            />
            <button
              type="button"
              onClick={this.onAddItem}
              disabled={!this.state.value}
            >
              Add
            </button>
          </div>
        );
      }
    }
    
    export default PersonName;

    Now run the application and you can see the text box and Add button. So write a name and click on Add button to add the name to the list.

    React js state array add item
    React js state array add item

    This is an example of React js state array add an item.

    Remove items from an array in React js state

    Here we will see how to remove items from an array in React js state,

    To remove items from an array we will use the filter method, so follow the below code.

    Let’s say index.html contains the below statement inside the body tag:

     <div id="root"></div>

    Next in the index.js file write the below code:

    import React from 'react';
    import ReactDOM from 'react-dom/client';
    import './index.css';
    import App from './App';
    import reportWebVitals from './reportWebVitals';
    
    const root = ReactDOM.createRoot(document.getElementById('root'));
    root.render(
        <App />
      
    );
    reportWebVitals();

    Next, the App component is the default component contained below set of code:

    import './App.css';
    import  PersonAge from './Components/ PersonAge';
    
    function App() {
      return (
        <div className="App">
          < PersonAge></ PersonAge>
    
        </div>
      );
    }
    export default App;

    Now in the PersonAge component write the below code to remove an item from an event in a button click.

    
    import React, { Component } from 'react';
    
    class PersonAge extends Component {
      constructor(props) {
        super(props);
    
        this.state = {
          ages: [43, 32, 66,42,43,66],
        };
      }
    
    //to remove item from array
      onRemoveItem = i => {
        this.setState(state => {
          const ages = state.ages.filter((item, j) => i !== j);
    
          return {
            ages,
          };
        });
      };
    
      render() {
        return (
          <div>
            <ul>
              {this.state.ages.map((item, index) => (
                <li key={item}>
                  The person is {item} years old.
                  <button
                    type="button"
                    onClick={() => this.onRemoveItem(index)}
                  >
                    Remove
                  </button>
                </li>
              ))}
            </ul>
          </div>
        );
      }
    }
    export default PersonAge;

    Now run the React application with the npm start command, and you can see that each item contains the Remove item button, by clicking on the button, you can remove the item.

    React js state array remove item
    React js state array remove the item

    This is an example of React js state array remove the item

    React js filter state

    Here we will see what is a filter in React js state

    What is Filter in React js?

    The Filter in reacts js is the process of iterating through an array and excluding and including items in the array based on the condition that you provide. The filter is a javascript function that we can execute on an array type of object.

    For example, we will see how to filter a name start with J from an array using React js filter state.

    Let’s say index.html contains the below statement inside the body tag:

     <div id="root"></div>

    Next in the index.js file write the below code:

    import React from 'react';
    import ReactDOM from 'react-dom/client';
    import './index.css';
    import App from './App';
    import reportWebVitals from './reportWebVitals';
    
    const root = ReactDOM.createRoot(document.getElementById('root'));
    root.render(
        <App />
      
    );
    reportWebVitals();

    Next, the App component is the default component contained below set of code:

    import './App.css';
    import  FilterArray from './Components/ FilterArray';
    
    function App() {
      return (
        <div className="App">
          < FilterArray></ FilterArray>
    
        </div>
      );
    }
    export default App;

    Now in the FIlterArray component, write the below code to get the name that starts with ‘J’.

    
    import React, { Component } from 'react';
    
    class FilterArray extends Component {
      state = {
        array: ["Alex", "John", "Ruby", "Rock","Jack"]
      };
    
    
      render() {
        return (
          <div>
           
            <h1>Name start with J:{this.state.array.filter(name => name.includes('J')).map(filteredName => (
            <li>
              {filteredName}
            </li>))}</h1>       
          </div>
        );
      }
    }
    export default FilterArray;

    Now run the react app, and you can see the list of names starting with J.

    React js filter state 1
    React js filter state

    This is an example of React js filter state

    React state array length

    Here we will see how to react state array length.

    Let’s say index.html contains the below statement inside the body tag:

     <div id="root"></div>

    Next in the index.js file write the below code:

    import React from 'react';
    import ReactDOM from 'react-dom/client';
    import './index.css';
    import App from './App';
    import reportWebVitals from './reportWebVitals';
    
    const root = ReactDOM.createRoot(document.getElementById('root'));
    root.render(
        <App />
      
    );
    reportWebVitals();

    Next, the App component is the default component contained below set of code:

    import './App.css';
    import  FilterArray from './Components/ FilterArray';
    
    function App() {
      return (
        <div className="App">
          < FilterArray></ FilterArray>
    
        </div>
      );
    }
    export default App;

    Now in the FilterArray component, write the below code to check the length of the array:

    class FilterArray extends Component {
      state = {
        array: ["Alex", "John", "Ruby", "Rock"]
      };
    
    
      render() {
        return (
          <div>
            <h1>React State Array Length: {this.state.array.length}</h1> 
    
          </div>
        );
      }
    }
    export default FilterArray;

    Next run the app using npm start command, then you can see the length of the array on the page.

    react state array length
    react state array length

    React js pass state from child to parent

    Here we will see how to pass state from child to parent component.

    In Parent component(App.js) we will create a call-back function, and this function will get the data from child component. Then we will pass the call back function to the child component as a props from the parent component.

    Let’s say index.html contains the below statement inside the body tag:

     <div id="root"></div>

    Next in the index.js file write the below code:

    import React from 'react';
    import ReactDOM from 'react-dom/client';
    import './index.css';
    import App from './App';
    import reportWebVitals from './reportWebVitals';
    
    const root = ReactDOM.createRoot(document.getElementById('root'));
    root.render(
        <App />
      
    );
    reportWebVitals();

    Now in the App.js file, App is the parent component, so we will begin the callback function like below :

    import React from 'react';
    import Child from './Components/Child'
    class App extends React.Component{
          
           state = {
            Number: "",
           }
      
        handleCallback = (childData) =>{
            this.setState({Number: childData})
        }
      
        render(){
            const {Number} = this.state;
            return(
                <div className='App'>
                    <Child parentCallback = {this.handleCallback}/>
                    {Number}
                </div>
            )
        }
    }
    export default App
    

    Next, in the Child, js file write the below code

    import { Component } from "react";
    class Child extends Component{
    	
    	onTrigger = (event) => {
    		this.props.parentCallback(event.target.number.value);
    		event.preventDefault();
    	}
    
    	render(){
    		return(
    		<div>
    			<form onSubmit = {this.onTrigger}>
    				<input type = "Number"
    				name = "number" placeholder = "Enter Number"/>
    				<br></br><br></br>
    				<input type = "submit" value = "Submit"/>
    				<br></br><br></br>
    			</form>
    		</div>
    		)
    	}
    }
    export default Child
    

    Now run the app, you can see the box on page, provide number and click on Submit button. you can see the number will display on the page.

    React js pass state from child to parent
    React js pass state from child to parent

    This is how we can pass state from child to parent in React js.

    In this React js tutorial, we learned all about the state in React js with different example:

    • What is the state in react js
    • Why state in react js
    • Props vs state react js
    • State in react js class component
    • update state in react js
    • default state in react js
    • reset state react js
    • react js state array
    • react js state array update
    • react js add state array
    • Remove items from an array in React js state
    • react js filter state
    • React state array length
    • React js pass state from child to parent
    comment_count comments
    Oldest
    Newest
    Oldest

    Comment as a guest:

    >