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

245
Visualizações
¿Cómo acceder a todo el elemento DOM en React que se representó a través del mapa?
return <div> <div >{'Audios'}</div> {urls.map(url => <div > <audio controls src={url} /> </div>)} </div>;

Quiero la referencia de todas las etiquetas de audio.

Generalmente usamos ref={} para un solo elemento DOM.

¿Cómo puedo usar ref para todos los elementos de un mapa?

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

0

Cree una ref como un valor inicial con array .

 const urlsRef = useRef([]);

Luego, en useEffect intente inicializar la longitud de la matriz con la longitud de las urls .

 useEffect(() => { urlsRef.current = urlsRef.current.slice(0, urls.length); }, [urls]);

Luego, en el atributo ref empuje dentro urlsRef

 return <div> <div >{'Audios'}</div> {urls.map(url => <div > <audio controls src={url} ref={el => urlsRef.current[i] = el} /> </div>)} </div>;
about 4 years ago · Juan Pablo Isaza Relatório

0

Dependiendo de las preocupaciones de rendimiento si sus listas son muy grandes, puede usar una identificación en el elemento y una consulta DOM para seleccionarlo. Personalmente, preferiría tener una identificación más específica que un índice de matriz, en caso de casos extremos como reordenar la lista. Por lo general, es mejor hacer referencia a algo que está en los datos.

Entonces, si tenemos una lista de URL ( ['google.com', 'amazon.com', 'microsoft.com'] ), también podemos actualizarla para almacenar una identificación. Esto debe hacerse cuando vaya a almacenar los datos, no en el renderizado de un componente React.

 urls: [{url: 'google.com', id: 1}, {url: 'amazon.com', id: 2}, {url: 'microsoft.com', id: 3}]

Ahora, idealmente, tendría algo como uuid() o un asistente que use una marca de tiempo o algo mejor que este ejemplo al generar una ID, pero es un ejemplo :)

Con esto en mente, hagamos las cosas un poco diferentes.

 return ( <div> <div>Audios</div> {urls.map(({url, id}) => ( <div> <audio controls src={url} id={`audio-${id}`} /> </div> ))} </div> );

si alguna vez necesita acceder a uno de estos elementos, digamos en un clic de usuario: onClick={handleClick(id)}

 handleClick = (id) => (e) => { const elem = document.getElementById(`audio-${id}`) // do something with the audio element }
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