⊗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
เราใช้คุกกี้สำหรับการทำงานของเว็บไซต์ การวิเคราะห์ และการปรับเนื้อหาให้เหมาะสมส่วนบุคคล การประมวลผลข้อมูลเกิดขึ้นตาม นโยบายความเป็นส่วนตัว.
ยอมรับทั้งหมด ปรับแต่ง ปฏิเสธ