Hanya punya pertanyaan apakah mungkin untuk menambah className di React JS???

untuk melakukan sesuatu seperti itu :

/* in first file */
const rowCount = 68;

class PhotosItem extends Component {
  constructor() {
    super();
    this.list = Array(rowCount).fill().map((val, idx) => {
      return {
        value : 0
      }
    });
  }

  render() {
    return (
      <>
        {this.list.map(this.renderRow)}
      </>
    );
  }

  renderRow(item) {
    return (
      <article class="photo__item">
        <PhotosFigure />
      </article>
    );
  }
}

export default PhotosItem;
/* in other file */
class PhotosFigure extends React.Component{
  render (){
    return (
     <>
       <div className={`figure photo_{* HERE AN INCREMENT *}`}></div>
     </>
     );
  }
}

export default PhotosFigure;

Saya ingin render seperti ini :

<article class="photo__item">
  <div class="figure photo_1"></div>
</article>

<article class="photo__item">
  <div class="figure photo_2"></div>
</article>

[...]

<article class="photo__item">
  <div class="figure photo_68"></div>
</article>

Apakah Anda punya jawaban untuk saya? atau cara yang lebih baik untuk melakukan itu?

Terima kasih.

(Saya orang Prancis jadi saya benar-benar minta maaf jika saya membuat kesalahan dalam bahasa Inggris)

-1
Guss411 23 April 2020, 01:42

1 menjawab

Jawaban Terbaik

Parameter kedua adalah indeks array untuk fungsi peta. Oleh karena itu, Anda dapat mengubah fungsi renderRow Anda menjadi ini dan meneruskan indeks sebagai penyangga.

  renderRow(item, index) {
    return (
      <article class="photo__item">
        <PhotosFigure index={index+1} />
      </article>
    );
  }

Kemudian di dalam komponen PhotosFigure Anda, Anda dapat menerima indeks sebagai penyangga dan menerapkan gaya ke kelas Anda seperti ini:

class PhotosFigure extends React.Component{
  render (){
    return (
     <>
       <div className={`figure photo_${this.props.index}`}></div>
     </>
     );
  }
}

0
Rohit Kashyap 22 April 2020, 22:50