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

117
Visualizações
Show different image of hover in react

I want to show different image on hover of div in react with usestate. Issue is when i hover on single image then all images changed. How to handle this issue. Screenshots of hover result are attached

const [open, setOpen] = useState(false);

<div className="container-fluid" id="companies">
  <div className="row">
    <div className="col-md-3 p-0">
      <div className="company-block" onMouseOver={() => setOpen(true)} onMouseOut={() => setOpen(false)}>
        <Image src={open ? BlockFiBlack : BlockFiWhite}/>
      </div>
    </div>
    <div className="col-md-3 p-0">
      <div className="company-block" onMouseOver={() => setOpen(true)} onMouseOut={() => setOpen(false)}>
        <Image src={open ? NerdWalletBlack : NerdWalletWhite}/>
      </div>
    </div>
    <div className="col-md-3 p-0">
      <div className="company-block" onMouseOver={() => setOpen(true)} onMouseOut={() => setOpen(false)}>
        <Image src={open ? SuperRateBlack : SuperRateWhite}/>
      </div>
     </div>
     <div className="col-md-3 p-0">
       <div className="company-block" onMouseOver={() => setOpen(true)} onMouseOut={() => setOpen(false)}>
          <Image src={open ? XealBlack : XealWhite}/>
        </div>
     </div>
  </div>
</div>

Before div hover result After div hover result

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

0

move individual items like following to separate component

<div className="col-md-3 p-0">
      <div className="company-block" onMouseOver={() => setOpen(true)} onMouseOut={() => setOpen(false)}>
        <Image src={open ? BlockFiBlack : BlockFiWhite}/>
      </div>
    </div>

and manage open state there.

this would work fine that way.

about 4 years ago · Juan Pablo Isaza Relatório

0

You can use a string instead of a boolean to set which image is currently hovered.

const [open, setOpen] = useState('');

const unhover = () => {
  setOpen('')
}

<div className="container-fluid" id="companies">
  <div className="row">
    <div className="col-md-3 p-0">
      <div className="company-block" onMouseOver={() => setOpen('blockfi')} onMouseOut={unhover}>
        <Image src={open === 'blockfi' ? BlockFiBlack : BlockFiWhite}/>
      </div>
    </div>
    <div className="col-md-3 p-0">
      <div className="company-block" onMouseOver={() => setOpen('nerdwallet')} onMouseOut={unhover}>
        <Image src={open === 'nerdwallet' ? NerdWalletBlack : NerdWalletWhite}/>
      </div>
    </div>
    <div className="col-md-3 p-0">
      <div className="company-block" onMouseOver={() => setOpen('superrate')} onMouseOut={unhover}>
        <Image src={open === 'superrate' ? SuperRateBlack : SuperRateWhite}/>
      </div>
     </div>
     <div className="col-md-3 p-0">
       <div className="company-block" onMouseOver={() => setOpen('xeal')} onMouseOut={unhover}>
          <Image src={open === 'xeal' ? XealBlack : XealWhite}/>
        </div>
     </div>
  </div>
</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