Абнаўленне дадзеных па 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 для абнаўлення дадзеных студэнта ў сховішчы.