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

136
Visualizações
Ruta SVG desde el archivo en el componente React

Usando Inkscape, he generado archivos svg que contienen rutas que son identificables por identificación personalizada. El objetivo es implementar un componente React que renderice uno de esos archivos svg, diseñe una ruta dada por id y transfiera la funcionalidad onClick al elemento de ruta con estilo. En mi opinión, hay dos enfoques.

Primero, uno podría cargar el archivo svg como un objeto de datos (mutable) y manipular el elemento de ruta directamente. No quiero hacer esto.

En segundo lugar, esto podría lograrse superponiendo el archivo svg en el fondo (ImageElement) con un elemento svg con estilo que cubra el elemento de la ruta original y otro que proporcione la funcionalidad del evento. Para "copiar y pegar" la ruta dada desde la capa de fondo a la capa con estilo, quiero leer el atributo <d> de la ruta del archivo svg.

 renderSvgElement() { // from this.props.src get <d> attribute of path this.props.pathID ... } render () { const ImageElement = React.forwardRef((props, ref) => <img style={this.styles.img} src={this.props.src} ref={ref} onClick={this.imageClick.bind(this)} />); return ( <div style={this.styles.container} ref={(node) => this.container = node} > <ImageElement ref={this.imgRef} /> <svg id="styled-layer" ref={(node) => this.styledSvg = node} style={this.styles.styledCanvas} > {this.renderSvgElement()} </svg> <svg id="onClick-layer" ref={(node) => this.onClickSvg = node} style={this.styles.onClickCanvas} > {this.renderOnClickSvgElement()} </svg> </div> );

He probado variaciones de

 path = document.querySelector("..."). contentDocument.querySelectorAll("path[path-id='...']")[0].getAttribute("d");

sin éxito ya que el objeto de datos parece ser nulo en el primer renderizado, al menos en la forma en que lo implementé. ¿Necesito configurar el objeto de datos en ComponentLoad / usando ganchos React, por ejemplo, useEffect? Usar HTML DOM de tal manera se siente poco elegante y no "reactivo". ¿Hay una mejor manera?

about 4 years ago · Juan Pablo Isaza
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