React'te Özyinelemeli Bileşenler

Çoğunuzun Özyineleme kavramına aşina olması gerektiğine inanıyorum . Değilse, lütfen bu bağlantı üzerinden gidin .

Örnekler, bir şeyi açıklamanın en iyi yoludur, bu yüzden biz de bir örnek alacağız.

İç İçe Yorumlar için bir Bileşen yapmanız gerektiğini varsayalım (Bir yorumunuz var ve bu yorumu yanıtladığınızda iç içe geçmiş bir biçimde görünmelidir vb.)
İşte size referans olması için bir resim.

O halde sorunu iki kısma ayıralım.
Bölüm 1: Normal yorum listesi için bileşeni yapın.
Bölüm 2: İç İçe Yorumlar için bileşeni değiştirin.

Tam çalışma kodunu burada bulabilirsiniz

Bölüm 1: Normal yorum listesi için bileşeni yapın.
İlk olarak, yorum dizisi için bir durum sağlayın.

const getDate = () => {
var today = new Date();
return (
today.getFullYear() + "-" + (today.getMonth() + 1) + "-" + today.getDate()
);
};
const getTime = () => {
var today = new Date();
return today.getHours() + ":" + today.getMinutes();
};
const [commentsArray, setCommentsArray] = useState([
{
username: Jen,
userId: 1,
date: getDate(),
time: getTime(),
content: "How Artistic!",
replies: [
 {
 username: Elliot,
 userId: 2,
 date: getDate(),
 time: getTime(),
 content: "True",
 replies: []  //This represents the nested comment
 }
]
}
]);

//inside return statement of parent component
<div>
{commentsArray.map((item, index) => {
return (
 <CommentItem
 key={index}
 getDate={getDate}
 getTime={getTime}
 item={item}
 />
);
})}
</div>

Bu nasıl olduğu CommentItem gibi bileşen görünüyor.

import React, { useState }from 'react'
//props.item is each comment
function CommentItem(props) {
return (
<div>
<div>{props.item.username}</div>
<div>{props.item.date} at {props.item.time}</div>
</div>
)
}
export default CommentItem

const nestedComments = (props.item.replies || [])
.map((item, index) => {
return (
<CommentItem
 item={item}
 key={index}
/>
);
});

Bu sabiti CommentItem dönüş ifademize ekleyeceğiz. Yani, son bileşenimiz şuna benziyor.

import React, { useState }from 'react'
//props.item is each comment
function CommentItem(props) {
const nestedComments = (props.item.replies || [])
.map((item, index) => {
return (
<CommentItem
 item={item}
 key={index}
/>
);
});
return (
<div>
<div>{props.item.username}</div>
<div>{props.item.date} at {props.item.time}</div>
<div>{nestedComments}</div>
</div>
)
}
export default CommentItem

Şimdilik bu kadar, sorularınız için [email protected] adresinden bana ulaşabilirsiniz .

Suggested posts

İnmenin Yıkıcı Sonuçlarından Kaçınmak: Bir Ailenin Yolculuğundan Öğrenilenler .

İnmenin Yıkıcı Sonuçlarından Kaçınmak: Bir Ailenin Yolculuğundan Öğrenilenler .

Giriş İnme, herhangi bir zamanda herkesi etkileyebilecek tıbbi bir acil durumdur. Beynin bir kısmına kan akışı bozulduğunda meydana gelir ve ani beyin fonksiyon kaybına yol açar.

Jest — Güçlü Bir JavaScript Test Çerçevesi

Jest — Güçlü Bir JavaScript Test Çerçevesi

Test, yazılım geliştirmenin önemli bir parçasıdır. Kodun güvenilir olmasını, beklendiği gibi çalışmasını sağlar ve hata olasılığını azaltır.

Related posts

Gezegeni Nasıl Kurtarır ve Para Kazanırsınız?

Gezegeni Nasıl Kurtarır ve Para Kazanırsınız?

Kaç kez bir plastik şişeyi, cam kavanozu, alüminyum kutuyu veya yeşil enerji paketini iki kere düşünmeden çöpe attınız? Kaç kez geri dönüşüm karşılığında bir şey alabilmeyi diledin? Çoğu insan gibiyseniz, cevap muhtemelen birçok kez. Geri dönüşüm genellikle herhangi bir acil veya somut fayda sağlamayan bir güçlük, angarya veya görev olarak görülür.

Bekleme mevsiminizde yapabilecekleriniz (teknikte ilk işinizi yapmak için beklerken)

Bekleme mevsiminizde yapabilecekleriniz (teknikte ilk işinizi yapmak için beklerken)

Tek başınıza yapmaya çalışırsanız, yeni bir kariyere geçmek son derece zor olabilir. Sizinle aynı öğrenme düzeyinde olan, benzer hedefleri, kararlılığı ve güdüyü paylaşan sorumlu ortaklar bulmak önemlidir.

kovboy yalanı

Mega şirketler Amerikalılara nasıl büyük bir yalan sattı?

kovboy yalanı

Güneşin ilk ışınları düzlüklerdeki buzlu çimleri aydınlatırken, batının engebeli tepelerinde parıldayan altın rengi bir sabah. Simsiyah ve iri, sakin bir Angus sığır sürüsü, hepsinin iyi bildiği bir yere giden ıssız bir patikadan aşağı inerken güneşin doğuşuna karşı siluet oluşturuyor; kahvaltı barı.

Jordan Neely Cinayeti ve “Vatansever” Irkçılık Sorunu

ABD, ırkçı davranışı iyi bir Amerikalı olmakla bir tutmamak gibi temel adımı atabilir mi?

Jordan Neely Cinayeti ve “Vatansever” Irkçılık Sorunu

[Tetik uyarısı: Bu makale, Jordan Neely'nin katilini öven insanların ekran görüntülerini içerir.] Kolluk kuvvetleri nihayet - ve belki de isteksizce - Jordan Neely'yi ölene kadar boğan Daniel Penny'yi bu cinayetle suçladı.