Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

143
Vistas
¿Por qué scrollIntoView funciona cuando el componente se carga por primera vez pero no en Click?

Estoy creando una aplicación de chat y, como este tipo de aplicaciones funcionan cada vez que envía un mensaje nuevo, la vista debe desplazarse hacia abajo y mostrar el mensaje nuevo.

La pregunta es que cuando el componente se muestra por primera vez, se desplaza hacia abajo, pero cuando hago clic para enviar un mensaje nuevo, no lo hace. Se agrega un nuevo mensaje pero no se desplaza. Lo que realmente no entiendo es que en Firefox funciona como se esperaba pero no en Chrome.

Mensajero.jsx

 const [messages, setMessages] = useState([]); const scrollRef = useRef(); .... const handleSubmit = async () => { const data = { conversationId: currentChat._id, sender: user._id, text: input, }; const response = await newMessage(data); setMessages([...messages, response]); setInput(''); setIsDisabled(true); }; useEffect(() => { scrollRef.current?.scrollIntoView({ behavior: 'smooth' }); }, [messages]); ... <div className='chat-box__top'> {messages.length > 0 && messages.map((message) => ( <div ref={scrollRef} key={message._id}> <Message className='message' own={message.sender._id=== user._id} message={message} /> </div> ))} </div> .... <button className='chat-box__submit' onClick={handleSubmit} disabled={isDisabled}> <SendIcon className='icon' /> ---.</button>

CSS de mensajería

 .chat-box__top{ padding-right: 10px; overflow-y: auto; }
about 4 years ago · Juan Pablo Isaza
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda