Uważam, że większość z was musi znać pojęcie rekurencji . Jeśli nie, przejdź przez ten link .
Przykłady to najlepszy sposób na wyjaśnienie czegoś, dlatego też weźmiemy przykład.
Załóżmy, że musisz stworzyć komponent dla zagnieżdżonych komentarzy (Masz komentarz i kiedy odpowiadasz na ten komentarz, powinien on pojawić się w zagnieżdżonym formacie itd.)
Oto obrazek dla twojego odniesienia.
Podzielmy więc problem na dwie części.
Część 1: Stwórz komponent dla normalnej listy komentarzy.
Część 2: Zmodyfikuj komponent dla zagnieżdżonych komentarzy.
Można znaleźć pełny kod roboczy tutaj
Część 1: Stwórz komponent dla normalnej listy komentarzy.
Po pierwsze, utrzymuj stan tablicy komentarzy.
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>
Tak wygląda Twój komponent CommentItem .
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}
/>
);
});
Dodamy tę stałą w naszej instrukcji return elementu CommentItem. Tak więc nasz końcowy komponent wygląda mniej więcej tak.
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
Na razie to wszystko. Wszelkie pytania proszę kierować na adres [email protected] .
Wstęp Udar to nagły przypadek medyczny, który może dotknąć każdego w dowolnym momencie. Występuje, gdy przepływ krwi do części mózgu zostaje zakłócony, co prowadzi do nagłej utraty funkcji mózgu.
Testowanie jest istotną częścią tworzenia oprogramowania. Zapewnia, że kod jest niezawodny, działa zgodnie z oczekiwaniami i zmniejsza prawdopodobieństwo błędów.
Wprowadzenie:Witajcie, odważni czytelnicy, w podróży, która zabierze nas w najciemniejsze głębiny naszej planety. Na tym blogu zagłębiamy się w enigmatyczny świat Rowu Mariańskiego, odkrywając jego ukryte tajemnice i odkrywając mrożące krew w żyłach prawdy, które leżą pod jego powierzchnią.
„Hej, Siri, zagraj w Me Dive autorstwa Olivii Dean”. W maju 2021 rozpocząłem staż w Future Academy Africa w Akure w Nigerii.
W dzisiejszym dynamicznym i konkurencyjnym świecie kariera odgrywa znaczącą rolę w rozwoju osobistym, stabilności finansowej i ogólnej satysfakcji z życia. Jednak wiele osób wpada w nieustający cykl stagnacji i niezadowolenia, stopniowo marnując swoje życie zawodowe.
„Będzie mnie chronił, gdy będę w niebezpieczeństwie. Ukryje mnie w swoim namiocie.