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
Selección de elementos y recuento de clics en un componente externo

Este es un proyecto de reacción. Estoy usando un componente externo (Scroller.jsx) que no puedo modificar.

 <Scroller />

Cuando inspecciono la parte del componente en el navegador, veo lo siguiente.

 <div> <!-- many other tags and divs --> <button type="button" class="container custom-left" data-unique-id="show-left"> <div>...</div> </button> <button type="button" class="container custom-right" data-unique-id="show-right"> <div>...</div> </button> <!-- many other tags and divs --> </div>


¿Hay alguna manera de que pueda apuntar a estos 2 botones usando la propiedad data-unique-id ?
y ser capaz de mantener un contador cada vez que se hace clic en el botón?
Esos botones ya vienen con alguna funcionalidad de clic. No quiero afectar eso de ninguna manera.
Solo busco llevar la cuenta de los clics y no puedo modificar el componente.

Tenga en cuenta que estoy tratando de lograr esto apuntando a los botones de alguna manera y llevando un conteo.
No puedo modificar el botón y agregar onClick en él cambiando las cosas en el componente Scroller.

Intenté lo siguiente, pero la selección de consulta aparece sin definir.
Además, este es un proyecto React.
Tratando de no tener que usar document.querySelector y, en su lugar, buscar algo específico de React.

La selección en sí está actualmente sin definir, lo cual es un problema.

 const = leftButton = document.querySelector('[data-unique-id="show-left"]'); const = rightButton = document.querySelector('[data-unique-id="show-right"]');

Después de poder seleccionar, con la esperanza de contar a través de lo que no se ha probado. No estoy seguro si funcionará.
Y nuevamente, este es un proyecto React. Con la esperanza de escribirlo con algo más específico de React.

 leftButton.addEventListener('click', function() { setCount(count - 1); }); rightButton.addEventListener('click', function() { setCount(count + 1); });

La consulta es esencialmente por qué mi selección no funciona. Y cómo podría contar cuándo se hace clic en estos botones de manera React. Gracias.

MiComponente.jsx

 import Scroller from 'external-lib/Scroller'; const MyComponent = () => { const [count, setCount] = React.useState(0); useEffect(() => { const leftButton = document.querySelector('[data-unique-id="show-left"]'); // undefined const rightButton = document.querySelector('[data-unique-id="show-right"]'); // undefined leftButton.addEventListener('click', function() { setCount(count - 1); }); rightButton.addEventListener('click', function() { setCount(count + 1); }); }, []); return (<Scroller/>); }; export default MyComponent;
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

La versión de clase puede verse así. Puede ser un poco detallado/anticuado, pero podría orientarlo en la dirección correcta.

 import Scroller from 'external-lib/Scroller'; import React from 'react' export default class MyComponent extends React.Component{ constructor(props){ super(props) this.state = { count: 0, setCount: 0 } this.handleLeft=this.handleLeft.bind(this) this.handleRight=this.handleRight.bind(this) } handleLeft(){ this.setState({count: count - 1 }) } handleRight(){ this.setState({count: count -1}) } render(){ const [count, setCount] = this.state return( <div> <!-- many other tags and divs --> <button type="button" onClick={this.handleLeft} class="container custom-left" data-unique- id="show-left"> <div>...</div> </button> <button type="button" onClick={this.handleRight} class="container custom-right" data- unique-id="show-right"> <div>...</div> </button> <Scroller/> <!-- many other tags and divs --> </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