React使用antd的圖片預覽組件,點擊哪個圖片就預覽哪個的設置

使用了官方推薦的相冊模式的預覽,但是點擊預覽之后,每次都是從圖片列表的第一張開始預覽,而不是點擊哪張就從哪張開始預覽:

所以這里我就封裝了一下,對初始化預覽的列表進行了邏輯處理:

當點擊開始預覽的時候,要找到當前圖片在預覽圖列表中的索引,然后設置為當前預覽圖索引,然后等點擊左右切換的時候,要改變這個索引,所以要使用onChange函數,等點擊關閉按鈕的時候,還要重置這個索引為點擊時候的圖片索引:

import './index.scss'
import { Image } from 'antd'
import { useState } from 'react'export default function ImageItem(props: any) {// console.log('props', props)const preList = ['https://gw.alipayobjects.com/zos/antfincdn/LlvErxo8H9/photo-1503185912284-5271ff81b9a8.webp','https://gw.alipayobjects.com/zos/antfincdn/cV16ZqzMjW/photo-1473091540282-9b846e7965e3.webp','https://gw.alipayobjects.com/zos/antfincdn/x43I27A55%26/photo-1438109491414-7198515b166b.webp',]const [preIndex, setIndex] = useState(preList.indexOf(props.imgUrl))// 當點擊前后切換的時候,修改當前預覽圖const handleSwitch = (current: number, prevCurrent: number) => {console.log('切換預覽圖', current, prevCurrent)setIndex(current)}// 關閉預覽圖是重置預覽為當前圖索引const handleClose = (visible: boolean) => {console.log('關閉預覽圖', visible)if (!visible) {setIndex(preList.indexOf(props.imgUrl))}}return (<div className="file"><Image.PreviewGroupitems={preList}preview={{minScale: 0.1,current: preIndex,onChange: handleSwitch,onVisibleChange: handleClose,}}><Image className="item-img" src={props.imgUrl} /></Image.PreviewGroup></div>)
}

預覽結果:?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/34739.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/34739.shtml
英文地址,請注明出處:http://en.pswp.cn/news/34739.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

加載并繪制時間域內的心電圖信號,并實施Q因子為1的陷波濾波器以去除50 Hz頻率研究(Matlab代碼實現)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;歡迎來到本博客????&#x1f4a5;&#x1f4a5; &#x1f3c6;博主優勢&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客內容盡量做到思維縝密&#xff0c;邏輯清晰&#xff0c;為了方便讀者。 ??座右銘&a…

一篇打通,pytest自動化測試框架詳細,從0到1精通實戰(一)

目錄&#xff1a;導讀 前言一、Python編程入門到精通二、接口自動化項目實戰三、Web自動化項目實戰四、App自動化項目實戰五、一線大廠簡歷六、測試開發DevOps體系七、常用自動化測試工具八、JMeter性能測試九、總結&#xff08;尾部小驚喜&#xff09; 前言 pytest單元測試框…

redis學習筆記(七)

文章目錄 zset&#xff08;有序集合&#xff09;&#xff08;1&#xff09;添加成員&#xff08;2&#xff09;獲取score在指定區間的所有成員&#xff08;3&#xff09;獲取集合長度&#xff08;4&#xff09;獲取指定成員的權重值&#xff08;5&#xff09;獲取指定成員在集合…

2308C++簡單異步改造網絡庫

用簡單異步可以輕松改造同步網絡庫從而獲得大幅性能提升,用它改造異步回調網絡庫可以讓我們以同步方式寫代碼,讓代碼更簡潔,可讀性更好,還能避免回調地獄的問題. 本文通過兩個例子分別來介紹如何用簡單異步改造基于asio的同步網絡庫和異步回調網絡庫. 示例依賴了獨立版的asio(…

JavaWeb_總體介紹

文章目錄 1.總括2.JavaWeb項目架構 1.總括 2.JavaWeb項目架構

request.post,json和data

參考 https://zhuanlan.zhihu.com/p/140372568 https://zhuanlan.zhihu.com/p/140372568 介紹 這兩條請求語句使用了不同的參數傳遞方式&#xff0c;有以下區別&#xff1a;1. requests.post(urlhttp://xx.8.84.xx:8000/inference, jsondata)這個語句使用了 json 參數&#…

js設置css變量控制頁面一行展示指定個數的元素

前置知識&#xff1a; CSS變量之var()函數的應用——動態修改樣式 & root的使用 flex相關知識 場景&#xff1a; 動態設置給父元素內子元素設置每行排列幾個 通過 document.body.style.setProperty(--itemNum, 5)設置樣式變量&#xff0c;然后通過給父元素設置display: f…

RocketMQ發送消息失敗:error CODE: 14 DESC: service not available now, maybe disk full

在執行業務時&#xff0c;發現MQ控制臺沒有查詢到消息&#xff0c;在日志中發現消息發送失敗&#xff0c;報錯error CODE: 14 DESC: service not available now, maybe disk full 分析報錯應該是磁盤空間不足&#xff0c;導致broker不能進行正常的消息存儲刷盤&#xff0c;去查…

MySQL 窗口函數是什么,有這么好用

先看這段像天書一樣的 SQL ,看著就頭疼。 SELECTs1.name,s1.subject,s1.score,sub.avg_score AS average_score_per_subject,(SELECT COUNT(DISTINCT s2.score) 1 FROM scores s2 WHERE s2.score > s1.score) AS score_rank FROM scores s1 JOIN (SELECT subject, AVG(sco…

Android 13 MTK平臺添加自定義按鍵,以及CTS問題解決

添加自定義按鍵流程 一般來說上層添加以下幾處修改 驅動層的鍵值上報,讓驅動處理好即可 frameworks / base/core/java/android/view/KeyEvent.java public static final int KEYCODE_DEMO_APP_4 = 304;/** add by songhui for fingerprint Key code */+ public static fina…

IntelliJ IDEA Bookmark使用

1 增加 右鍵行號欄 2 查看 從favorite這里查看 參考IntelliJ IDEA 小技巧&#xff1a;Bookmark(書簽)的使用_bookmark idea 使用_大唐冠軍侯的博客-CSDN博客

neo4j的CQL命令實例演示

天行健&#xff0c;君子以自強不息&#xff1b;地勢坤&#xff0c;君子以厚德載物。 每個人都有惰性&#xff0c;但不斷學習是好好生活的根本&#xff0c;共勉&#xff01; 文章均為學習整理筆記&#xff0c;分享記錄為主&#xff0c;如有錯誤請指正&#xff0c;共同學習進步。…

07-2_Qt 5.9 C++開發指南_二進制文件讀寫(stm和dat格式)

文章目錄 1. 實例功能概述2. Qt預定義編碼文件的讀寫2.1 保存為stm文件2.2 stm文件格式2.3 讀取stm文件 3. 標準編碼文件的讀寫3.1 保存為dat文件3.2 dat文件格式3.3 讀取dat文件 4. 框架及源碼4.1 可視化UI設計4.2 mainwindow.cpp 1. 實例功能概述 除了文本文件之外&#xff…

pve和openwrt以及我的電腦中網絡的關系和互通組網

情況1 一臺主機 有4個口&#xff0c;分別eth0,eth1,eth2,eth3 pve有管理口 這個情況下 &#xff0c;沒有openwrt 直接電腦和pve管理口連在一起就能進pve管理界面 情況2 假設pve 的管理口味eth0 openwrt中橋接的是eth0 eth1 eth2 那么電腦連接eth3或者pve管理口設置eth3&#xf…

【C#】設置有線網卡IP地址,子網掩碼,網關,DNS

方法 public partial class ComputerInfo{/// <summary>/// 設置IP地址&#xff0c;子網掩碼&#xff0c;網關&#xff0c;DNS/// </summary>public static List<NetworkAdapterInfo> SetIpAddressSubMaskDnsGeteway(string ipAddress, string subMask, stri…

MySQL庫的操作

文章目錄 MySQL庫的操作1. 創建數據庫2. 字符集和校驗規則(1) 查看系統默認字符集以及校驗規則(2) 查看數據庫支持的字符集和校驗規則(3) 案例(4) 校驗規則對數據庫的影響 3. 查看數據庫4. 修改數據庫5. 刪除數據庫6. 數據庫的備份和恢復(1) 備份(2) 還原 7. 查看連接情況 MySQ…

在 Windows 中恢復數據的 5 種方法

發生數據丟失的原因有多種。無論是因為文件被意外刪除、文件系統或操作系統損壞&#xff0c;還是由于軟件或硬件級別的存儲故障&#xff0c;數據都會在您最意想不到的時候丟失。今天我們重點介紹五種數據恢復方法&#xff0c;以應對意外情況的發生。 1.從另一臺機器啟動硬盤 如…

分享一組天氣組件

先看效果&#xff1a; CSS部分代碼&#xff08;查看更多&#xff09;&#xff1a; <style>:root {--bg-color: #E9F5FA;--day-text-color: #4DB0D3;/* 多云 */--cloudy-background: #4DB0D3;--cloudy-temperature: #E6DF95;--cloudy-content: #D3EBF4;/* 晴 */--sunny-b…

python基礎環境建設(pip、anaconda)

1.pip 配置文件路徑&#xff1a; centos&#xff1a;~/.pip/pip.conf windows: C:\Users\admin\AppData\Roaming\pip\pip.ini 文件內容&#xff1a; [global] index-url http://IP/repository/pypi-tsinghua/simple trusted-hostIP今天centos7.9、python3.6環境 pip install…

Https、CA證書、數字簽名

Https Http協議 Http協議是目前應用比較多應用層協議&#xff0c;瀏覽器對于Http協議已經實現。Http協議基本的構成部分有 請求行 &#xff1a; 請求報文的第一行請求頭 &#xff1a; 從第二行開始為請求頭內容的開始部分。每一個請求頭都是由K-V鍵值對組成。請求體&#xf…