import {FC, useCallback, useEffect, useState} from "react"; import {View} from "@tarojs/components"; import styles from './index.module.scss' import Taro, {useReachBottom, useRouter} from "@tarojs/taro"; import Empty from "@/components/empty/empty"; import Spinner from "@/components/spinner"; import Img from "@/components/image/image"; import { SearchApi } from "@/api/search"; const SearchList: FC = () => { const {name} = useRouter().params as unknown as { name: string} const [page, setPage] = useState(1) const [brands, setBrands] = useState([]) const [total, setTotal] = useState(0) const [text, setText] = useState('') const [loading, setLoading] = useState(true) useEffect(() => { getData() }, [page,name]) const getData = useCallback(async () => { try { const data = await SearchApi.list(page, 10,name) if (page === 1) { if (data.data.length < 10) { setText('没有更多了~') } else { setText('上拉加载更多~') } } setTotal(data.total) setBrands([ ...brands, ...data.data ]) } catch (e) { } setLoading(false) }, [page]) function jumpInfo(id: number,type:string) { console.log(type,'type') let url = '' switch (type){ case 'brand': url = '/pages/preview/brand/info/info'; break; case 'illness': url = '/pages/preview/illness/list/list'; break; case 'article': url = '/pages/preview/illness/article/article' break case 'video_record': url = '/pages/preview/videoFull/videoFull' break } Taro.navigateTo({url: `${url}?id=${id}`}) } useReachBottom(useCallback(() => { if (brands?.length < total) { setPage(page + 1) } else { setText('没有更多了~') } }, [total, brands])) return ( { brands.length ? <> {brands.map((d) => jumpInfo(d.data.id,d.data.table)} className={styles.box} key={d.data.id}> {d.data.title} {d.graphic_introduction} ) } {text} : } ) } export default SearchList