Aktualizácia údajov podľa URL parametrov v úložisku v React Router

V predchádzajúcej lekcii sme pridali ešte jednu trasu a stránku s formulárom pre úpravu údajov. Ostáva nám uložiť údaje zadané do nášho formulára.

Na začiatok pridajme funkciu na aktualizáciu údajov produktu updateProduct v forStorage.js. Potrebujeme do nej odovzdať jeho id a zmenené údaje:

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

Ďalej z úložiska pod kľúčom 'products' získame produkty a nájdeme ten, ktorý upravujeme podľa jeho id. V prípade neúspechu vyhodíme chybu:

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('No product found for this', id);        
}

Potom nám ostáva aplikovať zmeny na nájdený produkt a prepísať aktualizovaný zoznam v úložisku pomocou našej funkcie 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('No product found for this', id);
  Object.assign(product, updates);
  await setProducts(products);
  return product;
}
Задание 1

Vezmite aplikáciu, ktorú ste vytvorili v úlohách k predchádzajúcim lekciám. Použitím materiálov z lekcie pridajte do súboru forStorage.js funkciu updateStudent na aktualizáciu údajov študenta v úložisku.