Exercices

LocalStorage Weather Api ToDo et LocalStorage

React+ionic

Ionic Create project 4.React Outils utiles 5.Lifecycle Methods 6.JSX

Gestion Ventes

Produit CRUD

6.Form :Ajouter un produit 8.Liste produits 9.Pagination 10.Liste produits +Pagination 11.Liste produits +Datatable 11.Liste produits +load more 12.Supprimer un produit 14.Details d'un produit 15.Recherche et Autocomplete

Reacts:Utils

Gestion des erreurs Variables d'environment Cookies Internationalization proptypes Form validation React Animation Fragment Google Maps

Utilisateur CRUD

18.Inscription upload file 19.Connexion et Les sessions 19.Connexion: JWT Token

Ventes CRUD

17.Vendre un produit 18.Facture Generate PDF 19.Statisques Charts

Redux





Document

useEffect() Hook

stockee une valeur en utilistant localStarage

UserCrud()


        import React, { useState, useEffect } from 'react'
        export default function UserCrud()() {
            const [conditions, setConditions] = useState({
                isClickedEdit: false,
                userIndex: -1,
            })
            const [user, setUser] = useState({
                name: "",
                age: "",
            })
            const [users, setUsers] = useState(JSON.parse(window.localStorage.getItem('usersList')))
            const getValues = (e) => {
                const { name, value } = e.target
                setUser({
                    ...user,
                    [name]: value
                })
            }
            const addUser = () => {
                setUsers([...users, user])
            }
            const deleteUser = (ind) => {
                const del = [...users]
                res=del.filter((user,index)=>index!==ind)
                setUsers(res)
            }
            const editUser = (usr, ind) => {
                setUser(usr)
                setConditions({
                    ...conditions,
                    isClickedEdit: true,
                    userIndex: ind
                })
            }
            const updateUser = () => {
                const updatedUser = [...users]
                updatedUser[conditions.userIndex] = user
                setUsers(updatedUser)
                setConditions({
                    ...conditions,
                    isClickedEdit: false,
                    userIndex: -1,
                })
            }
            useEffect(() => {
                window.localStorage.setItem('usersList', JSON.stringify(users))
            }, [users])

            return(
                <div>
                    <h1>Add User</h1>
                    <div>
                        <div>
                            <label>Name</label>
                            <input type="text" name="name" onChange={getValues} value={user.name} />
                        </div>
                        <div>
                            <label>Age</label>
                            <input type="text" name="age" onChange={getValues} value={user.age} />
                        </div>
                        {
                            (conditions.isClickedEdit) ?
                                <button type='submit' onClick={updateUser}>Update User</button>
                                :
                                <button type='submit' onClick={addUser}>Add User</button>
                        }
                    </div>
                    <div>
                        <table>
                            <thead>
                                <tr>
                                    <th>Name</th>
                                    <th>Age</th>
                                    <th>Actions</th>
                                </tr>
                            </thead>
                            <tbody>
                            {
                                usersCopy.map((user, index) => {
                                    return (
                                        <tr key={index}>
                                            <td>{user.name}</td>
                                            <td>{user.age}</td>
                                            <td>
                                                <button onClick={()=> editUser(user, index)}>Edit</button>
                                                <button onClick={()=> deleteUser(index)}>Delete</button>
                                            </td>
                                        </tr>
                                    )
                                })
                            }
                            </tbody>
                        </table>
                    </div>
                </div>
            )
        }