Абнаўленне дадзеных па URL параметрах у сховішчы ў React Router
На мінулым уроку мы з вамі дадалі яшчэ адзін маршрут і староначку з формай для рэдагавання дадзеных. Нам засталося захаваць дадзеныя, унесеныя ў нашу форму.
Для пачатку дадамо функцыю для абнаўлення
дадзеных прадукту updateProduct у
forStorage.js. Нам трэба перадаць
у яе id прадукту і змененыя
дадзеныя:
export async function updateProduct(id, updates) {
await someNetwork();
}
Далей з сховішча па ключы 'products'
атрымаем прадукты і знойдзем той, які
мы змяняем па яго id. У выпадку няўдачы
кінем памылку:
export 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:
export 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;
}
Вазьміце дадатак, створанае вамі ў
заданнях да мінулых урокаў. Карыстаючыся
матэрыяламі ўрока, дадайце ў файл
forStorage.js функцыю
updateStudent для абнаўлення
дадзеных студэнта ў сховішчы.