⊗jsrtPmRtUfD 40 of 47 menu

მონაცემების განახლება FormData-ით React Router-ში

ჩვენ გვაქვს ფუნქცია updateProduct პროდუქტის მონაცემების საცავში განახლებისთვის. ახლა კი გადავიდეთ ჩვენი რედაქტირების ფორმის მონაცემებზე.

HTML-ფორმის გაგზავნისას ბრაუზერი ქმნის FormData ობიექტს მონაცემებით და აგზავნის მას მოთხოვნის სხეულში სერვერზე. უფრო მეტიც, თითოეული ინპუტის მნიშვნელობა ამოღებულია ობიექტში name ატრიბუტიდან (ამიტომ გვჭირდებოდა ისინი ფორმაში, გახსოვთ?). ჩვენ ახლა ვიცით, რომ React Router აგზავნის მოთხოვნებს არა სერვერზე, არამედ ჩვენი მარშრუტის action მეთოდში, შესაბამისად, იქ მოხვდება FormData. მოდით ვიმუშაოთ ამაზე.

დასაწყისისთვის გავხსნათ ჩვენი ფაილი edit.jsx და დავაიმპორტოთ updateProduct:

import { updateProduct } from '../forStorage';

შემდეგ ჩვენ დავწერთ ფუნქციას მარშრუტის ობიექტის action-ისთვის, როგორც ეს ადრე გავაკეთეთ. დავამატოთ ის loader ფუნქციის შემდეგ. ჩვენ მას გადავცემთ ჩვენს request-ს და URL პარამეტრებს:

export async function action({ request, params }) {}

მოთხოვნიდან ჩვენ მივიღებთ FormData-ს, შემდეგ ამოვიღებთ მისგან მონაცემებს ობიექტის სახით, რომელიც შეიცავს გასაღები: მნიშვნელობა წყვილებს და updateProduct-ის დახმარებით გავგზავნით ამ მონაცემებს საცავში:

export async function action({ request, params }) { const formData = await request.formData(); const updates = Object.fromEntries(formData); await updateProduct(params.productId, updates); return 1; }

რჩება მხოლოდ main.jsx-ში შესვლა და action ფუნქციის დამატება რედაქტირების მარშრუტის ობიექტში. დავაიმპორტოთ action:

import EditProduct, { loader as editProductLoader, action as editAction, } from './routes/edit';

და დავამატოთ ის რედაქტირების მარშრუტის ობიექტში:

{ path: 'products/:productId/edit', element: <EditProduct />, loader: editProductLoader, action: editAction, },

ახლა გაუშვით აპლიკაცია, დაამატეთ რამდენიმე პროდუქტი სიაში, შემდეგ დააწკაპუნეთ მათზე, შეავსეთ ფორმა და დააჭირეთ შენახვის ღილაკს. არ დაგავიწყდეთ დეველოპერის პანელში შესვლა localforage განყოფილებაში და საცავის განახლება. ახლა keyvaluespairs განყოფილებაში ჩვენ შეგვიძლია დავინახოთ ობიექტები products მასივში ჩვენი შეყვანილი მონაცემებით.

აიღეთ აპლიკაცია, რომელიც თქვენ შექმენით წინა გაკვეთილის დავალებებში. გაკვეთილის მასალების გამოყენებით, შექმენით ფუნქცია action სტუდენტის მონაცემების რედაქტირების მარშრუტისთვის, დაამატეთ ის რედაქტირების მარშრუტის ობიექტში. გახსენით დეველოპერის პანელი და დარწმუნდით, რომ ცვლილებების შეტანისას განახლებული მონაცემები ნამდვილად გამოირჩევა localforage ჩანართზე.

ქართული
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
ვებსაიტის მუშაობის, ანალიტიკისა და პერსონალიზაციისთვის ვიყენებთ ქუქი-ფაილებს. მონაცემთა დამუშავება ხდება Კონფიდენციალურობის პოლიტიკის შესაბამისად.
ყველას მიღება პარამეტრები უარყოფა