Andmete uuendamine URL-i parameetrite põhjal salvestusruumis React Routeris

Eelmises õppetükis lisasime veel ühe marsruudi ja lehe vormiga andmete muutmiseks. Meil jääb üle salvestada meie vormis sisestatud andmed.

Alustuseks lisame funktsiooni toote andmete uuendamiseks updateProduct faili forStorage.js. Peame sellele edastama toote id ja muudetud andmed:

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

Seejärel saame salvestusruumist võtme 'products' abil tooted ja leiame selle, mida me muudame, selle id järgi. Ebaõnnestumise korral viskame vea:

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

Seejärel jääb meil muudatuste tegemine leitud tootesse ja uuendatud nimekirja ülekirjutamine salvestusruumi meie funktsiooni setProducts abil:

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

Võtke rakendus, mille lõite ülesannetes eelmistele õppetundidele. Kasutades õppetunni materjale, lisage faili forStorage.js funktsioon updateStudent õpilase andmete uuendamiseks salvestusruumis.