⊗jsrtPmRtAD 32 of 47 menu

การเพิ่มข้อมูลใน React Router

ในบทเรียนที่ผ่านมา เราได้เตรียมโหลดเดอร์ และการดึงข้อมูลตามเส้นทางที่กำหนด จากที่เก็บข้อมูล คราวนี้มาทำความรู้จัก ผ่านตัวอย่างแอปพลิเคชันของเราว่าจะเพิ่ม สินค้าใหม่และบันทึกข้อมูลของมันลงใน ที่เก็บข้อมูลได้อย่างไร

มาเปิดไฟล์ root.jsx และเพิ่ม ปุ่มสำหรับเพิ่มสินค้าใหม่เข้าไปในเลย์เอาต์ ก่อน nav โดยครอบมันด้วยแท็กฟอร์ม นอกจากนี้ ให้เราครอบปุ่มและรายการของเราอีกทีด้วย div อีกอันที่มี #menu ตอนนี้เลย์เอาต์จะ มีลักษณะดังนี้:

return ( <div id="main"> <div id="menu"> <form method="post"> <button type="submit">add product</button> </form> {products.length ? ( <nav> {products.map((product) => ( <Link key={product.id} to={`products/${product.id}`}> {product.name ? product.name : <i>Unnamed</i>} </Link> ))} </nav> ) : ( <p> <i>no products here ...</i> </p> )} </div> <div id="product"> <Outlet /> </div> </div> );

หากตอนนี้เราเข้าไปที่แถบ 'เครือข่าย' ใน Developer Tools จากนั้นกดที่ ปุ่มของเรา เราจะเห็นคำขอเอกสารที่ผิดพลาด ไปยังเซิร์ฟเวอร์ ด้วย React Router เราจะใช้การกำหนดเส้นทาง ฝั่งไคลเอ็นต์อีกครั้ง เพื่อยกเว้นการร้องขอไปยังเซิร์ฟเวอร์

มาเปลี่ยนแท็ก form เป็นคอมโพเนนต์ Form ของ React Router กัน เริ่มด้วยการเพิ่ม การนำเข้า Form:

import { Form } from 'react-router-dom';

ตอนนี้มาแทนที่แท็ก form ในส่วนของโค้ด:

<Form method="post"> <button type="submit">add product</button> </Form>

โหลดแอปพลิเคชันของเราอีกครั้งและดูที่ Developer Tools อีกที คราวนี้ลองกดปุ่มเพิ่ม สินค้า - ตอนนี้ไม่มีคำขอไปยังเซิร์ฟเวอร์แล้ว (ยังไม่ต้องสนใจข้อผิดพลาดที่ปรากฏ)

นำแอปพลิเคชันที่คุณสร้างไว้ใน แบบฝึกหัดจากบทเรียนที่ผ่านมา ใช้ เนื้อหาจากบทเรียน แก้ไขการแสดงผล ของฟังก์ชัน Root เพิ่มปุ่มสำหรับ เพิ่มนักเรียนในแท็ก form และตรวจสอบให้แน่ใจว่าหากกด ปุ่ม จะมีคำขอไปยังเซิร์ฟเวอร์เกิดขึ้น

และตอนนี้ให้แทนที่แท็ก form ด้วย คอมโพเนนต์ Form ตรวจสอบให้แน่ใจว่า เมื่อกดปุ่มเพิ่มนักเรียน จะไม่มีการส่งคำขอไปยังเซิร์ฟเวอร์

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