kandi background
Explore Kits

Create Editable Table using Reactjs

by vsasikalabe Updated: Jan 24, 2023

In this kit, we're going to see how to create Editable Table using Reactjs with simple steps.Tables is used to display a set of data. In some projects, you need to implement the dynamic table with editable/non-editable modes where a user can add or delete any row.Hence the need to create editable tables to reduce the hassle of having to build a form for the table. An advantage of this approach is that you also get to improve your app's user experience (UX) by minimizing the interfaces a user has to interact with. You will also be able to load data dynamically populating table rows, ensuring your tables can always have updated data.

Please check the code below,

Preview of the output that you will get on running this code from your IDE.


Code:

In this solution we use the React library.

JavaScriptLines of Code : 96License : CC BY-SA 4.0

import React, {Component} from 'react';

export class AppComponent extends Component {
    state = {
        movieDetails: [
            {
                "id": 9001,
                "name": "Dead Pool",
                "rating": 8.0
            },
            {
                "id": 9002,
                "name": "The Emoji Movie",
                "rating": 1.5
            },
            {
                "id": 9003,
                "name": "Dunkirk",
                "rating": 8.5
            }
        ],
        currentValue: "",
        edit: null,
        errorMessage: "",
        successMessage: "",
        buttonActive: false
    };


    updateRating = (movie, index) => {
        const confirmation = window.confirm("Do you want to update rating: " + this.state.currentValue);
        if (confirmation) {
            this.setState(state => {
                const movies = [...state.movieDetails];
                movies[index] = {...movies[index], rating: state.currentValue};
                return {movieDetails: movies};
            });
        }
    };

    handleChange = (event, movie) => {
        movie.rating = event.target.value;
        // this.setState({})
        console.log(movie, event.target.value);
    };

    getMovieDetails = () => {

        return this.state.movieDetails.map((movie, index) => {
            return (
                <tr key={movie.id}>
                    <td>{movie.id}</td>
                    <td>{movie.name}</td>
                    <td>
                        <input
                            type="text" name={"rating" + (index + 1)}
                            onFocus={() => this.setState({edit: index, currentValue: movie.rating})}
                            onBlur={() => this.setState({edit: null})}
                            value={this.state.edit === index ? this.state.currentValue : movie.rating}
                            onChange={(e) => this.setState({currentValue: e.target.value})}/>
                    </td>
                    <td>
                        <button onClick={() => this.updateRating(movie, index)}>
                            Update
                        </button>
                    </td>
                </tr>
            )
        })
    };

    render() {
        return (
            <div className="row ">
                <div className="col-md-6 offset-md-3 ">
                    <br></br>
                    <h1 className="text-center">Update Rating</h1>
                    <table id="movies">
                        <thead>
                        <tr>
                            <th>Movie Id</th>
                            <th>Movie Name</th>
                            <th>Rating</th>
                            <th>Action</th>
                        </tr>
                        </thead>
                        <tbody>
                        {this.getMovieDetails()}
                        </tbody>
                    </table>
                </div>
            </div>
        )
    }
}

Instructions

Follow the steps carefully to get the output easily.

  1. Install the Node.js and React on your IDE(preferable Visual Studio Code).
  2. Create React Application using npx create-react-app foldername.
  3. cd foldername.
  4. Open the folder in IDE.
  5. Copy the code using "copy" button above and paste it in App.js file(remove the earlier code from App.js).
  6. Add export default AppComponent to the last line of the code.
  7. Open the terminal from IDE.
  8. npm start to run the file.


I hope you found this useful. I have added the link to dependent libraries, version information in the following sections.


I found this code snippet by searching for 'Create Editable Table using Reactjs' in kandi. You can try any such use case!

Environment Tested

I tested this solution in the following versions. Be mindful of changes when working with other versions.

  1. The solution is created in VS Code 1.73.1 version.
  2. The solution is tested on Nodejs 16.14.2 version.
  3. react 18.2.0 version.


Using this solution, we are able to Create Editable Table using Reactjs with simple steps. This process also facilities an easy way to use, hassle-free method to create a hands-on working version of code which would help us to Create Editable Table using Reactjs.

Dependent Libraries

create-react-appby facebook

JavaScript star image 98671 Version:v5.0.1

License: Permissive (MIT)

Set up a modern web app by running one command.

Support
Quality
Security
License
Reuse

create-react-appby facebook

JavaScript star image 98671 Version:v5.0.1 License: Permissive (MIT)

Set up a modern web app by running one command.
Support
Quality
Security
License
Reuse

You can search for any dependent library on kandi like 'react'.

Support

  1. For any support on kandi solution kits, please use the chat
  2. For further learning resources, visit the Open Weaver Community learning page.

See similar Kits and Libraries

JavaScript