⊗jsrtPmCpEGS 89 of 112 menu

การแก้ไข state ในคอมโพเนนต์หลานใน React

พิจารณาคอมโพเนนต์ Product ที่เราได้รับ มาในบทเรียนที่แล้ว:

function Product({ id, name, cost, isEdit, toggleMode, editProd }) { return <div> name: { isEdit ? <input value={name} onChange={event => editProd(id, 'name', event)} /> : <span>{name}</span> } cost: { isEdit ? <input value={cost} onChange={event => editProd(id, 'cost', event)} /> : <span>{cost}</span> } <button onClick={() => toggleMode(id)}> {isEdit ? 'save': 'edit'} </button> </div>; }

เห็นได้ง่ายว่าโค้ดสำหรับชื่อผลิตภัณฑ์ และสำหรับราคาผลิตภัณฑ์นั้นซ้ำกันเกือบทั้งหมด ลองนำโค้ดนี้ออกมาเป็นคอมโพเนนต์แยก ProductField:

function ProductField({ id, text, type, isEdit, editProd }) { return isEdit ? <input value={text} onChange={event => editProd(id, type, event)} /> : <span>{text}</span> ; }

นำการเปลี่ยนแปลงไปยังคอมโพเนนต์ Product:

function Product({ id, name, cost, isEdit, toggleMode, editProd }) { return <div> name: <ProductField id={id} text={name} type="name" isEdit={isEdit} editProd={editProd} />, cost: <ProductField id={id} text={cost} type="cost" isEdit={isEdit} editProd={editProd} /> <button onClick={() => toggleMode(id)}> {isEdit ? 'save': 'edit'} </button> </div>; }

ดำเนินการที่คล้ายกันกับคอมโพเนนต์ User ที่คุณสร้างขึ้นในบทเรียนก่อนหน้า

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