iT邦幫忙

2022 iThome 鐵人賽

DAY 22
0
自我挑戰組

React 面 項目 看起來很好吃吧--佐material 調料系列 第 22

React side project--Image list (圖片拼貼)

  • 分享至 

  • xImage
  •  

常見的圖片拼貼,或是瀑布流廣告,在Mui也有套件可以用

https://ithelp.ithome.com.tw/upload/images/20221006/20098345gTxvcuLiyx.png

也常常拿來塞版面
首先 import 各項組件

import * as React from "react";
import { useEffect, useState } from "react";
import ImageList from "@mui/material/ImageList";
import ImageListItem from "@mui/material/ImageListItem";
import ImageListItemBar from "@mui/material/ImageListItemBar";
import ListSubheader from "@mui/material/ListSubheader";
import IconButton from "@mui/material/IconButton";
import InfoIcon from "@mui/icons-material/Info";

再來設定狀態 導入API

const [listData, setListData] = useState([]);
  const [barry, setListBarry] = useState([]);
  useEffect(() => {
    fetch(
      "https://api.kcg.gov.tw/api/service/Get/9c8e1450-e833-499c-8320-29b36b7ace5c"
    )
      .then((res) => res.json())
      .then((result) => {
        let array = [];
        let Barry = [];
        for (let index = 0; index < 28; index++) {
          array.push(result.data.XML_Head.Infos.Info[index]);
        }
        for (let index = 0; index < 6; index++) {
          Barry.push(result.data.XML_Head.Infos.Info[index]);
        }
        setListData(array);
        setListBarry(Barry);
      });
  }, []);

最後在UI中裝入JSX元件

 <ImageList sx={{ width: "100%" }} cols={3} rowHeight={164}>
      {listData.map((item) => (
        <ImageListItem key={item.Picture1}>
          <img
            src={`${item.Picture1}?w=248&fit=crop&auto=format`}
            srcSet={`${item.Picture1}?w=248&fit=crop&auto=format&dpr=2 2x`}
            alt={item.title}
            loading="lazy"
          />
          <ImageListItemBar
            title={item.Name}
            subtitle={item.author}
            actionIcon={
              <IconButton
                sx={{ color: "rgba(255, 255, 255, 0.54)" }}
                aria-label={`info about ${item.title}`}
              >
                <InfoIcon />
              </IconButton>
            }
          />
        </ImageListItem>
      ))}
    </ImageList>

Day 22


上一篇
React side project--Accordion (展延式卡片)
下一篇
React side project--Stepper(步驟條)
系列文
React 面 項目 看起來很好吃吧--佐material 調料30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言