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

147
Visualizações
React hooks onHover modal en cada elemento de la matriz

El modal (cuadro verde) debe aparecer debajo de cada cuadro rojo separado una vez que haya un evento onHover. por el momento el recuadro verde solo aparece en la misma zona. por lo que sería una apertura modal debajo de cada cuadro rojo diferente. gracias de antemano

sandbox aquí https://codesandbox.io/s/modal-array-ccpso3?file=/src/App.js:0-1283

 import React, { useState } from "react"; import roundFace from "../src/sad.png"; const data = [ { image: roundFace, number: 1 }, { image: roundFace, number: 2 }, { image: roundFace, number: 3 } ]; export const Items = (imageUrl, heading) => ( <div className="flex flex-col"> <div className="px-2 py-2 mx-auto align-middle"> <div className="w-16 h-16 border-solid border-4 border-red-600"> <img className="" src={imageUrl} alt="" /> <div className={heading} /> </div> </div> </div> ); export const App = () => { const [Hover, setHover] = useState(false); return ( <div className=""> <div className="grid gap-x-8 gap-y-4 grid-cols-3 px-2 py-2"> {data && data.length > 0 && data.map((box, index) => ( <div key={`-${index}`}> <div onMouseEnter={() => setHover(true)} onMouseLeave={() => setHover(false)} > <Items imageUrl={box.image} /> </div> {box.number} </div> ))} {Hover && ( <p className="w-16 h-16 border-solid border-4 border-green-600"> Hi! </p> )} </div> </div> ); }; export default App; import * as React from "react"; import { render } from "react-dom"; import App from "./App"; const rootElement = document.getElementById("root"); render(<App />, rootElement);
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

App.js y aquí está.

 import React, { useState } from "react"; import roundFace from "../src/sad.png"; const data = [ { image: roundFace, number: 0 }, { image: roundFace, number: 1 }, { image: roundFace, number: 2 } ]; export const Items = (imageUrl, heading) => ( <div className="flex flex-col"> <div className="px-2 py-2 mx-auto align-middle"> <div className="w-16 h-16 border-solid border-4 border-red-600"> <img className="" src={imageUrl} alt="" /> <div className={heading} /> </div> </div> </div> ); export const App = () => { const [Hover, setHover] = useState(null); return ( <div className=""> <div className="grid gap-x-8 gap-y-4 grid-cols-3 px-2 py-2"> {data && data.length > 0 && data.map((box, index) => ( <div key={`attendees-${index}`}> <div onMouseEnter={() => setHover(index)} onMouseLeave={() => setHover(false)} > <Items imageUrl={box.image} /> </div> {box.number} <span>{Hover === box.number ? <p className="w-16 h-16 border-solid border-4 border-green-600">Wow</p> : ""}</span> {/* {Hover && ( )} */} </div> ))} </div> </div> ); }; export default App;

Estoy flotando en el segundo cuadro y aparece el modal.

¿Es esto lo que estás buscando?

ingrese la descripción de la imagen aquí

Cosas que he cambiado:

  • Valor numérico en la matriz de datos
  • UseState a nulo

¿Por qué lo cambié?

La matriz comienza desde 0, así que estoy marcando la box.number El número es igual al número de índice (que está presente en Hover). Si es así, aparecerá el cuadro.

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