Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

175
Visualizações
Cómo representar un componente para un elemento particular en una matriz

Tengo una matriz, para la cual un componente ( <span>Delete</span> en mi caso) debe mostrarse solo si la longitud de la matriz es mayor que 2 y también, no se muestra en los dos primeros elementos de la matriz pero se muestra en otros elementos .

Ejemplo: matriz = ["Uno","Dos","Tres","Cuatro"] Mostrar <span>Delete</span> en "Tres" y "Cuatro" ya que la matriz es mayor que la longitud 2. En lo anterior caso, incluso si la matriz es mayor que la longitud 2, no se muestra en los dos primeros elementos ("Uno" y "Dos").

Código:

 const App = () => { const [element, setElement] = useState(["element"]); return ( <> {element.map((e) => ( <div> <span>{e}</span> {element.length > 2 && <span style={{color:"red"}}>{" "}Delete</span>} </div> ))} <button onClick={() => setElement((element) => [...element, "element"])}>Add</button> </> ); };

El código anterior muestra el texto "Eliminar" en todos los elementos

ingrese la descripción de la imagen aquí

en cambio, debería mostrarse solo para los elementos después del segundo índice.

ingrese la descripción de la imagen aquí

CodeSandbox: https://codesandbox.io/s/basic-antd-4-16-9-forked-2w3lg5?file=/index.js:98-478

about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

Use el índice del elemento sobre el que está iterando (el segundo argumento en la devolución de llamada .map ) para verificar si el índice es 2 o más; si es así, puede mostrar la eliminación; de lo contrario, no la muestre.

 const App = () => { const [elements, setElements] = useState(["element"]); return ( <> {elements.map((e, i) => ( <div> <span>{e}</span> {elements.length > 2 && i >= 2 && <span style={{color:"red"}}>{" "}Delete</span>} </div> ))}

(Debido a que el estado es una matriz, hacer que su nombre sea plural tiene mucho más sentido que un element singular, que suena como un elemento de matriz)

about 4 years ago · Juan Pablo Isaza Relatório

0

puedes hacer algo como esto

 {element.length > 2 && element.map((ele,index) => { if(index > 1){ return <p>{ele}</p> } else{ return <></> } })}
about 4 years ago · Juan Pablo Isaza Relatório

0

También debe verificar si el índice del elemento actual es mayor que 1 .

 const App = () => { const [element, setElement] = React.useState(["element"]); return ( <React.Fragment> {element.map((e, i) => ( <div> <span>{e}</span> {i > 1 && element.length > 2 && <span style={{ color: "red" }}>Delete</span>} </div> ))} <button onClick={() => setElement((element) => [...element, "element"])}> Add </button> </React.Fragment> ); }; ReactDOM.render(<App />, document.getElementById("root"));
 <script crossorigin src="https://unpkg.com/react@17/umd/react.development.js"></script> <script crossorigin src="https://unpkg.com/react-dom@17/umd/react-dom.development.js"></script> <div id="root"></div>

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda