Məlumatların URL parametrləri ilə saxlancda yenilənməsi React Router-də

Keçən dərsdə biz əlavə bir marşrut və redaktə forması olan səhifə əlavə etdik. Formada daxil etdiyimiz məlumatları saxlamaq qalır.

Əvvəlcə, məhsul məlumatlarını yeniləmək üçün updateProduct funksiyasını forStorage.js faylına əlavə edək. Ona məhsulun id-sini və dəyişiklikləri ötürməliyik:

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

Sonra, saxlancdan 'products' açarı ilə məhsulları götürüb, id-sinə görə dəyişdiyimizi tapacağıq. Uğursuz olduqda xəta atacağıq:

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

Sonra, tapılan məhsulda dəyişikliklər etmək və setProducts funksiyamızla yenilənmiş siyahını saxlanca yenidən yazmaq qalır:

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

Əvvəlki dərslərin tapşırıqlarında yaratdığınız tətbiqi götürün. Dərs materiallarından istifadə edərək, forStorage.js faylına saxlancdakı tələbə məlumatlarını yeniləmək üçün updateStudent funksiyasını əlavə edin.