36 lines
1.3 KiB
TypeScript
36 lines
1.3 KiB
TypeScript
import { Image, Swiper, SwiperItem, View } from "@tarojs/components"
|
|
import { useMemo, useState } from "react"
|
|
import styles from './index.module.scss'
|
|
|
|
type item = {title:string, img:string, url:string, id:number}
|
|
|
|
type params = {
|
|
list?: item[]
|
|
}
|
|
export default ({list = []}: params) => {
|
|
|
|
const [pageIndex, setPageIndex] = useState(1)
|
|
|
|
const pageCount = useMemo(() => {
|
|
return list.length
|
|
},[list])
|
|
|
|
const swiperChange = (e) => {
|
|
setPageIndex(e.detail.current + 1)
|
|
}
|
|
|
|
return (
|
|
<View className={styles.swiper}>
|
|
<Swiper className={styles.swiper_item} circular={true} onAnimationFinish={(e) => swiperChange(e)}>
|
|
{list.map((item) => {
|
|
return <SwiperItem key={item.id}>
|
|
<View className={styles.image_item} >
|
|
<Image mode="aspectFill" src='https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fimg.jj20.com%2Fup%2Fallimg%2F811%2F021315104H2%2F150213104H2-3-1200.jpg&refer=http%3A%2F%2Fimg.jj20.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=auto?sec=1651817947&t=5467a207f845ddfc7737d55934e6b26d'></Image>
|
|
</View>
|
|
</SwiperItem>
|
|
})}
|
|
</Swiper>
|
|
<View className={styles.page}>{pageIndex+'/'+pageCount}</View>
|
|
</View>
|
|
)
|
|
} |