Atualização de dados por parâmetros de URL no armazenamento no React Router
Na lição anterior, adicionamos mais uma rota e uma página com um formulário para editar dados. Resta-nos salvar os dados inseridos em nosso formulário.
Para começar, vamos adicionar uma função para atualizar
os dados do produto updateProduct no
forStorage.js. Precisamos passar
para ela o id do produto e os dados
alterados:
export async function updateProduct(id, updates) {
await someNetwork();
}
Em seguida, obteremos os produtos do armazenamento pela chave 'products'
e encontraremos aquele que
estamos alterando pelo seu id. Em caso de falha,
lançaremos um erro:
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);
}
Então, nos resta aplicar as alterações
ao produto encontrado e regravar
a lista atualizada no armazenamento usando
nossa função 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;
}
Pegue o aplicativo criado por você nas
tarefas das lições anteriores. Usando os
materiais da lição, adicione ao arquivo
forStorage.js a função
updateStudent para atualizar os
dados do estudante no armazenamento.