React Router-daky sahypa parametrleri boýunça maglumatlary ammary täzelemek

Öňki sapakda biz başga bir marshrut we redaktirleme üçin forma bilen sahypa goşduk. Bizde formada girizilen maglumatlary saklamak galdy.

Başlangyç üçin, forStorage.js faýlynda önümi düzetmek üçin updateProduct funksiýasyny goşalyň. Ona önümiň id we üýtgedilen maglumatlary ibermeli:

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

Indi ammar dan 'products' açar boýunça önümleri alyp, üýtgedýän önümimizi id boýunça taparys. Köp bolmadyk ýagdaýda ýalňyşlyk ýüz ýetireris:

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

Soňra, tapylan önüme üýtgeşmeleri girizmeli we setProducts funksiýamyz kömegi bilen täzelenen sanawdy ammara ýazdymalydyrys:

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

Öňki sapakdaky wezipelerde döreden programmanyňyzy alyň. Sapak materiallaryny ulanyp, forStorage.js faýlyna talybyň maglumatlaryny ammarda täzelemek üçin updateStudent funksiýasyny goşuň.