Ažuriranje podataka preko URL parametara u skladištu u React Router-u

U prethodnoj lekciji smo dodali još jednu rutu i stranicu sa formom za uređivanje podataka. Ostaje nam da sačuvamo podatke unete u naš formular.

Za početak, dodajmo funkciju za ažuriranje podataka proizvoda updateProduct u forStorage.js. Potrebno je da joj prosledimo id proizvoda i izmenjene podatke:

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

Zatim ćemo iz skladišta preko ključa 'products' preuzeti proizvode i pronaći onaj koji menjamo po njegovom id. U slučaju neuspeha bacićemo grešku:

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('Nije pronađen proizvod za', id);        
}

Zatim nam ostaje da unesemo izmene u pronađeni proizvod i ponovo upišemo ažuriranu listu u skladište pomoću naše funkcije 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('Nije pronađen proizvod za', id);
  Object.assign(product, updates);
  await setProducts(products);
  return product;
}
Задание 1

Uzmite aplikaciju koju ste kreirali u zadacima za prethodne lekcije. Koristeći se materijalima lekcije, dodajte u fajl forStorage.js funkciju updateStudent za ažuriranje podataka studenta u skladištu.