მონაცემების განახლება 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 სტუდენტის მონაცემების განახლებისთვის საცავში.