DEV Community

Mohamed-Hajri
Mohamed-Hajri

Posted on

react crud

import React, { useState, useEffect } from 'react';
import axios from 'axios';

const YourComponent = () => {
const [data, setData] = useState([]);
const [newProduct, setNewProduct] = useState({

name: '',
price: 0,
Enter fullscreen mode Exit fullscreen mode

});

useEffect(() => {

fetchData();
Enter fullscreen mode Exit fullscreen mode

}, []);

const fetchData = () => {
axios.get('http://localhost:5000/api/products')
.then((res) => {
setData(res.data);
})
.catch((error) => {
console.error('Error fetching data:', error);
});
};

const handleCreate = () => {

axios.post('http://localhost:5000/api/products', newProduct)
  .then((res) => {

    setData([...data, res.data]);

    setNewProduct({
      name: '',
      price: 0,

    });
  })
  .catch((error) => {
    console.error('Error creating product:', error);
  });
Enter fullscreen mode Exit fullscreen mode

};

const handleUpdate = (productId, updatedProduct) => {

axios.put(`http://localhost:5000/api/products/${productId}`, updatedProduct)
  .then((res) => {

    const updatedData = data.map(product => (product.id === productId ? res.data : product));
    setData(updatedData);
  })
  .catch((error) => {
    console.error('Error updating product:', error);
  });
Enter fullscreen mode Exit fullscreen mode

};

const handleDelete = (productId) => {

axios.delete(`http://localhost:5000/api/products/${productId}`)
  .then(() => {

    const updatedData = data.filter(product => product.id !== productId);
    setData(updatedData);
  })
  .catch((error) => {
    console.error('Error deleting product:', error);
  });
Enter fullscreen mode Exit fullscreen mode

};

return (


{/* Render your component with data and CRUD operations */}

);
};

export default YourComponent;

Top comments (0)