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

178
Views
El estilo en línea de reaccionar jsx no se representa cuando se completa desde una variable

Agregué un elemento de estilo en línea a una etiqueta div en un componente de reacción junto con un elemento className. La propiedad className se representa pero el estilo no se muestra. Estoy configurando desde una variable de objeto. Sin embargo, si configuro el elemento de estilo directamente usando llaves dobles, funciona, simplemente no funciona desde una variable.

Aquí hay una imagen del valor del objeto que estoy usando para establecer el elemento de estilo.

ingrese la descripción de la imagen aquí

Esto muestra dónde se debe configurar el elemento de estilo a medida que se procesa el componente, el objeto styleElement tiene un valor establecido en este punto

ingrese la descripción de la imagen aquí

Esto muestra la representación posterior del componente y el elemento de estilo no está presente

ingrese la descripción de la imagen aquí

¿Qué evitaría que el elemento de estilo se renderice aunque se complete a partir de un objeto que contenga propiedades CSS?

over 4 years ago · Santiago Trujillo
6 answers
Answer question

0

usa ES6 para esto.

 background: `url(${imageUrl}) no-repeat`
over 4 years ago · Santiago Trujillo Report

0

Agregue " alrededor de la imageURL

 { background: "url(\"" + imageUrl + "\") no-repeat ..."}
over 4 years ago · Santiago Trujillo Report

0

Parece que su problema radica en la parte !important . React no admite el uso de !important en el objeto de estilo. Si puede deshacerse de esa parte !important , sería lo mejor, pero si no puede, aquí hay una solución alternativa (tomada de esta respuesta SO ):

 <div ref={(node) => { if (node) { node.style.setProperty('background', `url(${imageUrl}) no-repeat 50% 40%`, 'important'); } }} />
over 4 years ago · Santiago Trujillo Report

0

Creo que !important es el principal culpable aquí. Simplemente elimínelo y todo debería mostrarse con la variable dentro.

El CSS en línea, como regla general, anulará cualquier CSS en su hoja de estilo asumiendo el mismo nivel de especificidad.

Eche un vistazo a MDN para obtener más información sobre la especificidad y !important para obtener más información!

over 4 years ago · Santiago Trujillo Report

0

la sintaxis de la imagen de fondo es

 background-image: url("img_tree.gif");

Le falta el " entre el nombre del archivo. cambie a

 { background: 'url("' + imageUrl + '") no-repeat 50% 40% !important' }

la otra cosa que quizás desee verificar es asegurarse de que img_tree.gif sea realmente la ruta correcta, por lo general, debería ser una ruta relativa o una ruta absoluta, algo como ./img_tree.gif o http://example.com/img_tree.gif

también asegúrese de tener un tamaño de fondo

 background-size: cover
over 4 years ago · Santiago Trujillo Report

0

Una regla sobre !important

  • Cualquier valor en la propiedad de estilo de un elemento tiene prioridad sobre cualquier cosa heredada por una hoja de estilo (incluso si la regla de la hoja de estilo usa la anotación !important). Por lo tanto, no tiene que usar !important dentro del estilo en línea

Creo que es posible que deba importar la ruta en jsx

 // require also works background:`url(${import("./images/your_image")}) no-repeat 50% 40%`

Si no funciona, intente esto:

 style={{ backgroundImage: `url(${require('./images/your_image')})`, backgroundRepeat: 'no-repeat', }}
over 4 years ago · Santiago Trujillo 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!