Acredito que a maioria de vocês deve estar familiarizado com o conceito de recursão . Se não, por favor vá até este link .
Os exemplos são a melhor maneira de explicar algo, portanto, também vamos dar um exemplo.
Suponha que você tenha que criar um componente para comentários aninhados (você tem um comentário e quando responde a esse comentário, ele deve aparecer em um formato aninhado e assim por diante).
Aqui está uma imagem para sua referência.
Portanto, vamos dividir o problema em duas partes.
Parte 1: Faça o componente para lista normal de comentários.
Parte 2: modifique o componente para comentários aninhados.
Você pode encontrar o código de trabalho completo aqui
Parte 1: Faça o componente para lista normal de comentários.
Em primeiro lugar, mantenha um estado para a variedade de comentários.
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>
Esta é a aparência do seu componente 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}
/>
);
});
Vamos adicionar essa constante em nossa instrução de retorno de CommentItem. Portanto, nosso componente final se parece com isso.
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
Por enquanto é isso, para qualquer dúvida, entre em contato comigo pelo e- mail [email protected] .
Introdução O AVC é uma emergência médica que pode atingir qualquer pessoa a qualquer momento. Ocorre quando o fluxo sanguíneo para uma parte do cérebro é interrompido, levando a uma perda repentina da função cerebral.
O teste é uma parte essencial do desenvolvimento de software. Ele garante que o código seja confiável, funcione conforme o esperado e reduza a probabilidade de erros.
Mudar para uma nova carreira pode ser extremamente desafiador se você tentar fazer isso sozinho. É importante encontrar parceiros de responsabilidade que estejam no mesmo nível de aprendizado que você, que compartilhem objetivos, tenacidade e motivação semelhantes.
[Alerta de gatilho: este ensaio inclui capturas de tela de pessoas elogiando o assassino de Jordan Neely.] Os policiais finalmente - e talvez com relutância - acusaram Daniel Penny, o homem que sufocou Jordan Neely até a morte, por aquele homicídio.
É uma manhã brilhantemente dourada nas colinas do oeste, enquanto os primeiros raios de sol iluminam a grama congelada nas planícies. Um rebanho de gado Angus plácido, preto e maciço, é recortado contra o nascer do sol enquanto segue por uma trilha batida até um local que todos conhecem bem; a barra de café da manhã.
Quando você faz uma solicitação para facebook.com, seu computador procura o nome de domínio para traduzir esse nome de domínio em um endereço IP para que seu computador possa fazer essa conexão.