reactjs " ketika menggunakan background-image dynamic

function Catalog(props) {
    const {imgSrc, title, desc} = props;
    console.log(imgSrc)
    return (
    <>
    <div class="column">
        <div class="catalog-img"
        style={{
            backgroundImage: `url("${imgSrc}")`,
            }}></div>

<div class="catalog-img" style="background-image: url(&quot;../images/redrika.png&quot;);"></div> hasil di atas merusak link url style dari component sy

avatar kritzerenkrieg
@kritzerenkrieg

4 Kontribusi 0 Poin

Diperbarui 11 bulan yang lalu

2 Jawaban:

Jawaban Terpilih

Kode template literal di Javascript nya sudah benar. Kamu bisa coba menghilangkan quote pada url CSS.

<div
    style={{
        backgroundImage: `url(${imgSrc})`,
    }}>
</div>
avatar hilmanski
@hilmanski

2686 Kontribusi 2135 Poin

Dipost 11 bulan yang lalu

Tanggapan

terima kasih gan, solusi utamanya ternyata image nya harus di /public/, kalau di selain public ga di import malah jadi &quot; returnnya

terima kasih sudah share, sepertinya itu tidak ada hubungannya dengan masalah quote ya?

Untuk menggunakan background image dynamic dari props di React, gunakan template literals seperti ini:

function Catalog({ imgSrc, title, desc }) {
  return (
    <div className="column">
      <div 
        className="catalog-img"
        style={{
          backgroundImage: `url(${imgSrc})`
        }}
      ></div>

      <div>{title}</div>
      <p>{desc}</p>
    </div>
  )
}

Poin pentingnya:

  • Gunakan template literals url(${imgSrc}) untuk menggabungkan string dan variable
  • Jangan menggunakan quote di dalam template literals

Dengan begini, imgSrc akan terinterpolasi sebagai URL background image secara dinamis berdasarkan props yang diterima.

Untuk mengatasi masalah quote yang merusak URL sebelumnya, gunakan template literals seperti di atas. Quote hanya diperlukan untuk mendefinisikan style object, bukan untuk isi URL itu sendiri.

avatar adamajalah27
@adamajalah27

119 Kontribusi 40 Poin

Dipost 11 bulan yang lalu

Login untuk ikut Jawaban