Տվյալների թարմացում URL պարամետրերով պահեստում React Router-ում

Նախորդ դասին մենք ավելացրեցինք ևս մեկ երթուղի և էջ ձևով տվյալների խմբագրման համար: Մեզ մնաց պահպանել մեր ձևի մեջ ներմուծված տվյալները:

Սկսելու համար ավելացնենք ֆունկցիա՝ թարմացնելու արտադրանքի տվյալները updateProduct forStorage.js ֆայլում: Մենք պետք է փոխանցենք դրան id արտադրանքի և փոփոխված տվյալները:

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

Այնուհետև պահեստից 'products' բանալիով կստանանք արտադրանքները և կգտնենք այն, որը մենք փոխում ենք ըստ նրա id-ի: Ձախողման դեպքում կնետենք սխալ:

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

Այնուհետև մեզ մնում է կատարել փոփոխություններ գտնված արտադրանքի մեջ և վերագրել թարմացված ցուցակը պահեստում՝ օգտագործելով մեր 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

Վերցրեք ձեր կողմից ստեղծված հավելվածը նախորդ դասերին առաջադրանքներում: Օգտագործելով դասի նյութերը, ավելացրեք forStorage.js ֆայլում updateStudent ֆունկցիան՝ ուսանողի տվյալները պահեստում թարմացնելու համար: