Печать атрибутов массива объектов в виде сетки в ReactJs - PullRequest
0 голосов
/ 06 марта 2020

Я пытаюсь создать веб-страницу с сеткой заполнителей изображений в ReactJs. Сначала я сделал отдельный компонент в качестве заполнителя (в коде он называется «CubeTemplate»). CubeTemplate. js: -

    import React, { Component } from 'react';

    /*change this css file name according your css*/
    import './Cubetemplate.css';


    class Cubetemplate extends Component {

        render (){
            return(
                <div className="simple">
                        <div className="container">
                            <div className="bigdivgal">
                                 <div className="cubeboxgal">
                                    <div className="boxcontentgal">
                                        <div className="innerimggal"><img src={`../images/${this.props.source}`}" /></div>
                                   </div>
                                </div>
                            </div
                        </div>

                    <div className="spacer2gal"></div>
                </div>
            )}
    };

export default Cubetemplate;

Затем я добавил массив объектов в основной компонент (названный Gallery. js), чтобы отправить его на CubeTemplate с помощью функции карты. Галерея. js: -

    import React from 'react';
    import ReactDOM from 'react-dom';
    import Cubetemplate from './components/cubes/Cubetemplate';
    import './Gallery.css';


    const GALLERY = [
      {
        img: "1.jpg", title: "Fifty shades of Threta",
        name: "by Navin 'The Flash' Thamindu",
        date: "02/04/2026"
      },
      {
        img: "2.png", title: "Princess cosplay",
        name: "Suchalya Nasaraani",
        date: "05/06/2024"
      },
      {
        img: "3.jpg", title: "Threta theme live performance",
        name: "Tolmojith Bandara",
        date: "07/02/2024"
      },
  {
    img: "4.jpg", title: "3D printing threata action figures",
    name: "Udukaya Thisanka Niruwath ",
    date: "03/01/2023"
  },
  {
    img: "5.jpg", title: "Lovely Prince",
    name: "Disty Tidin Sinnakunji",
    date: "09/04/2022"
  },

    ];

    const Gallery = () => (

      <div className="gallerycontainer">
        <div className="container gal">
              {GALLERY.map(({img}, {name})  => (
                <Cubetemplate source={img}/>     
                ))}
        </div>
      </div>
    );

    export default Gallery;

Теперь у меня проблема в том, что я хочу отобразить эти поля-заполнители как a grid with 4 columns. Но все, что я пробовал, потерпело неудачу. Что я должен сделать, чтобы получить этот эффект?

К вашему сведению, это CubeTemplate. css:

.cubeboxgal{
    width: 100%;
    height: 15rem;
    background: rgb(37, 37, 37);
    display: inline-block;}

.bigdivgal{
    width: 150%;
    padding-left: 50px;
}

.innerimggal{
    width: 96%;
    height: 14.5rem;
    background: rgb(255, 255, 255);
    display: inline-block; 
    align-items: center;
    top: 0.25rem;
    left: 0.18rem;
    background-image: url(./images/bg.jpg;   
    margin:2%;
}
.spacer2gal{
    margin: 1rem;
}
.simplediv{
    width:100%;
}

@media(max-width:768px){
    .innerimggal {
        display: none;
    }
    .boxcontentgal{
        top: 3rem;
        left:1%;
    }
}

1 Ответ

0 голосов
/ 06 марта 2020

Довольно прямо с сеткой дисплея в CSS.

const rootElement = document.getElementById("root");
ReactDOM.render(
  <React.StrictMode>
    <div className="displayGrid">
      {Array(24).fill(0).map(() => (<img className="gridItem" src="https://picsum.photos/200" />))}
    </div>
  </React.StrictMode>,
  rootElement
);
.displayGrid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  grid-gap: 1rem;
}

.gridItem {
  display: inline;
  height: 100px;
  width: auto;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script>

<body>
  <div id="root"></div>
</body>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...