НОВИНКА!
Занимательная математика от Трепачёва. Присоединяйтесь к нам!
⊗jsrtPmRtUD 39 of 47 menu

Обновление данных по 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 для обновления данных студента в хранилище.

Русский
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить