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

66
Visualizações
Passing different useState to mapped elements

I couldn't find the solution on how to pass specific useState states to respective mapped elements

export const Polska = () => {
  const [riverVisible, setRiverVisible] = useState(false)
  const [mountainVisible, setMountainVisible] = useState(false)
  const [lakeVisible, setLakeVisible] = useState(false)

  const [currentSlide, setCurrentSlide] = useState(0)

  const handleClick = (direction) => {
    direction === 'left' 
    ? setCurrentSlide(currentSlide > 0 ? currentSlide - 1 : 2) 
    : setCurrentSlide(currentSlide < 3 -1 ? currentSlide + 1 : 0)
  }
 return (
    <div className='polska'>
<Row>
        <div className='listOfLandscapes'>
          <div className="listOfLandscapes__slider" style={{transform: `translateX(-${currentSlide * 100}vw)` }}>
            {/* {
              PolskaLandscapes.map((landscape) => */}
                <div className='listOfLandscapes__slider__item'>
                    <SvgMountains />
                    <button className='listOfLandscapes__slider__item__desc' onClick={() => setMountainVisible(!mountainVisible)}>
                        Spectacular Mountains
                    </button>
                </div>
                <div className='listOfLandscapes__slider__item'>
                    <SvgRivers />
                    <button className='listOfLandscapes__slider__item__desc' onClick={() => setRiverVisible(!riverVisible)}>
                        The Longest Rivers
                    </button>
                </div>
                <div className='listOfLandscapes__slider__item'>
                    <SvgLakes />
                    <button className='listOfLandscapes__slider__item__desc' onClick={() => setLakeVisible(!lakeVisible)}>
                        Beautiful Lakes
                    </button>
                </div>
              {/* )
            } */}
          </div>
        </div>
      </Row>

in the code above everything is hardcoded, but for sure there is a way to make it cleaner. I tried to pass it in the object properties but it didn't work...

import SvgMountains from "./svgPolska/SvgMountains"
import SvgRivers from "./svgPolska/SvgRivers"
import SvgLakes from "./svgPolska/SvgLakes"

export const PolskaLandscapes = [
    {
        id: 1,
        bcg: <SvgMountains />,
        desc: 'Spectacular Mountains',
        v: riverVisible,
        sv: setRiverVisible
    },
    {
        id: 2,
        bcg: <SvgRivers />,
        desc: 'The Longest Rivers',
        v: mountainVisible,
        sv: setMountainVisible
    },
    {
        id: 3,
        bcg: <SvgLakes />,
        desc: 'Charming Lakes',
        v: lakeVisible,
        sv: setLakeVisible
    }
]

I would be grateful for any leads.

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

0

You could create a landscape item component to make it cleaner

export const LandscapeItem = (id, bcg, desc) => {
    const [isVisible, setIsVisible] = useState(false);

    return ...
}
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