Posodabljanje podatkov prek URL parametrov v shrambi v React Router

V prejšnji lekciji smo dodali še eno pot in stran z obrazcem za urejanje podatkov. Ostalo nam je še shraniti podatke, vnesene v naš obrazec.

Za začetek dodajmo funkcijo za posodabljanje podatkov produkta updateProduct v forStorage.js. Potrebovali jo bomo v njej id produkta in spremenjene podatke:

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

Nato iz shrambe po ključu 'products' dobimo produkte in poiščemo tistega, ki ga spreminjamo po njegovem id. V primeru neuspeha vržemo napako:

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);        
}

Nato nam ostane še vnesti spremembe v najdeni produkt in prepisati posodobljen seznam v shrambo s pomočjo 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('No product found for this', id);
  Object.assign(product, updates);
  await setProducts(products);
  return product;
}
Задание 1

Vzemite aplikacijo, ki ste jo ustvarili v nalogah za prejšnje lekcije. Z uporabo gradiva iz lekcije dodajte v datoteko forStorage.js funkcijo updateStudent za posodabljanje podatkov študenta v shrambi.