⊗jsrtPmCpPS 85 of 112 menu

რეაქტში სტეიტების შვილ კომპონენტებში გადაცემა

დავუშვათ, გვაქვს მოცემული პროდუქტების მასივი:

const initProds = [ {id: id(), name: 'product1', cost: 100}, {id: id(), name: 'product2', cost: 200}, {id: id(), name: 'product3', cost: 300}, ];

დავუშვათ, ეს მასივი მდებარეობს კომპონენტში Products. ჩავწეროთ ეს პროდუქტები კომპონენტის სტეიტში:

function Products() { const [prods, setProds] = useState(initProds); }

ახლა მოდით გადავუყვეთ პროდუქტებს ციკლით და გამოვსახოთ ისინი რაიმე ვერსტკაში:

function Products() { const [prods, setProds] = useState(initProds); const items = prods.map(prod => { return <div key={prod.id}> name: <span>{prod.name}</span>, cost: <span>{prod.cost}</span> </div>; }); return <div> {items} </div>; }

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

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

function Product({ name, cost }) { return <div> name: <span>{name}</span>, cost: <span>{cost}</span> </div>; }

მოდით ახლა კომპონენტის Products შიგნით ციკლში map გამოვიყენოთ შვილობილი კომპონენტები Product:

function Products() { const [prods, setProds] = useState(initProds); const items = prods.map(prod => { return <Product key ={prod.id} name={prod.name} cost={prod.cost} />; }); return <div> {items} </div>; }

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

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

კომპონენტის Users სტეიტში მოცემულია შემდეგი მასივი:

const initUsers = [ {id: id(), name: 'user1', surname: 'surn1', age: 30}, {id: id(), name: 'user2', surname: 'surn2', age: 31}, {id: id(), name: 'user3', surname: 'surn3', age: 32}, ];

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