Përditësimi i të dhënave sipas parametrave të URL në depozitë në React Router

Në mësimin e kaluar ne shtuam edhe një rrugëtim dhe një faqe me formë për redaktimin e të dhënave. Na mbetet të ruajmë të dhënat e futura në formën tonë.

Për fillim, le të shtojmë një funksion për përditësimin e të dhënave të produktit updateProduct në forStorage.js. Ne duhet të kalojmë në të id e produktit dhe të dhënat e ndryshuara:

forStorage.jsexport async function updateProduct(id, updates) {
  await someNetwork();
}

Pastaj nga depozita me çelësin 'products' do të marrim produktet dhe do të gjejmë atë që po e ndryshojmë sipas id të tij. Në rast dështimi do të hedhim një gabim:

forStorage.jsexport async function updateProduct(id, updates) {
  await someNetwork();
  let products = await localforage.getItem('products');
  let product = products.find((product) => product.id === id);
  if (!product) throw new Error('Nuk u gjet produkt për këtë', id);        
}

Pastaj na mbetet të bëjmë ndryshimet në produktin e gjetur dhe të rishkruajmë listën e përditësuar në depozitë me ndihmën e funksionit tonë setProducts:

forStorage.jsexport async function updateProduct(id, updates) {
  await someNetwork();
  let products = await localforage.getItem('products');
  let product = products.find((product) => product.id === id);
  if (!product) throw new Error('Nuk u gjet produkt për këtë', id);
  Object.assign(product, updates);
  await setProducts(products);
  return product;
}
Задание 1

Merrni aplikacionin e krijuar nga ju në detyrat e mësimeve të kaluara. Duke përdorur materialet e mësimit, shtoni në skedarin forStorage.js funksionin updateStudent për përditësimin e të dhënave të studentit në depozitë.