Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

204
Views
¿Cuál es la forma correcta de manipular el desplazamiento de flexbox desbordado en ReactJS?

Considere la siguiente estructura:

 .container { width: 200px; height: 100px; overflow: auto; overflow-y: hidden; } .container p { width: 300px; height: 100px; background-color: yellow; }
 <div class="container"> <p>Sample Text1, Sample Text2, Sample Text3</p> </div> <button onclick="handleScrollLeft()">Left</button> <button onclick="handleScrollRight()">Right</button>

Debido a que estoy trabajando en ReactJS, mi código real se parece más a esto:

 export function Slider() { const handleScrollLeft = () => { } const handleScrollRight = () => { } return ( <> <div className="container"> <p>Sample Text1, Sample Text2, Sample Text3</p> </div> <button onClick="handleScrollLeft">Left</button> <button onClick="handleScrollRight">Right</button> </> ); }

Con esos 2 botones me gustaría cambiar el valor de desplazamiento (mover hacia la izquierda y hacia la derecha respectivamente). No estoy seguro de cómo manejar este tipo de cambio:

  1. En uso ¿Efecto? (No quiero forzar el renderizado, solo expanda la funcionalidad de desplazamiento a esos 2 botones)
  2. ¿Crear gancho personalizado? (La misma preocupación)
  3. ¿O debería modificar directamente ese elemento DOM en las funciones del controlador? (Sé que esto es un gran no-no en React)

Estoy realmente confundido sobre qué enfoque es correcto, cualquier consejo o solución con más explicaciones sobre por qué sería apreciado

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Puede usar el gancho useRef y el método element.scrollBy .

 const STEP = 40; export function Slider() { const scrollable = useRef(null); const handleScrollLeft = () => { scrollable.current.scrollBy(-STEP, 0); } const handleScrollRight = () => { scrollable.current.scrollBy(STEP, 0); } return ( <> <div className="container" ref={scrollable}> <p>Sample Text1, Sample Text2, Sample Text3</p> </div> <button onClick="handleScrollLeft">Left</button> <button onClick="handleScrollRight">Right</button> </> ); }

También puede usar estesandbox como ejemplo.

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!