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

118
Visualizações
Set class styles to items in a react component

I tried to put a underline in my nav list with this code.

 const [classOn, setClassOn] = useState('menu_selected');
    const [linkMenu, setLinkMenu] = useState('');

    function handleSelectedMenu(nb){
        setLinkMenu(document.querySelectorAll('nav ul li'));
        for(let i=1; i<linkMenu.length; i++){
            linkMenu[i].firstChild.classList.remove(classOn)
        } 
        linkMenu[nb].firstChild.classList.add(classOn) 
    }

on full screen, nothing happens and I get an error in my console log

Uncaught TypeError: Cannot read properties of undefined (reading 'firstChild')

but when I open mobile viewer, the styles are been applied.

enter image description here

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

0

You can change the class name directly on the element based on an existing state, like:

function classNames(...classes) {
  return classes.filter(Boolean).join(" ");
}

function FakeElement = () => {
  const [hidden, setHidden] = useState(false);

  return (
    <li
      className={classNames(
        hidden
          ? "hidden-class"
          : "",
        "default-class other-default-class"
      )}
    >Stuff</li>
  );
}

U can add a lot of conditions in classNames function.

about 4 years ago · Juan Pablo Isaza Relatório

0

you should try something like this.

<ul onMouseOver={() => setLinkMenu(true)}
      onMouseLeave={() => setLinkMenu(false)}
      className={`${linkMenu ? 'block ' : 'hidden '}`} >
       {options.map((option) => (
         <li className="text-sm p-2 block w-full"
        key={option}
        onClick={() => setLinkMenu(false)}>{option}</li>
  </ul>
about 4 years ago · Juan Pablo Isaza Relatório

0

I solve the problem using styles.menu_selected.

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