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



Чат с GPT Компилятор