"use client"; import React, { useState, useEffect } from "react"; import { List, InfiniteScroll, Toast } from "antd-mobile"; import { useRouter } from "next/navigation"; import requireAPI from "@/utils/requireAPI"; import Empty from "@/components/Empty"; import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { faAngleLeft } from "@fortawesome/free-solid-svg-icons"; import PostItem from "@/components/PostItem"; export default function StreamerPosts({ id }) { //获取当前时间 const [currentTime, setCurrentTime] = useState(); const getCurrentTime = async () => { setCurrentTime(Math.floor(new Date().getTime() / 1000)); }; //获取截止当前时间的动态数据 const [data, setData] = useState([]); const [offset, setOffset] = useState(0); const [more, setMore] = useState(1); const router = useRouter(); const getData = async (type) => { if (!currentTime) return; //防止重复加载 if (data.length === 0 && type === "bottom") return; if (type === "bottom" && offset === 0) return; if (!more) return; try { const body = { mid: id, ct_upper_bound: currentTime, offset: offset, limit: 4, }; const _data = await requireAPI("POST", "/api/moment/list_by_mid", { body, }); if (_data.ret === -1) { Toast.show({ icon: "fail", content: _data.msg, position: 60, }); return; } if (icon === "top") { setData((prev) => _data.data.list); } else { setData((prev) => [...prev, ..._data.data.list]); } setOffset(_data.data.offset); setMore(_data.data.more); } catch (error) { console.error(error); } }; //查看是否需要blur并获取当前时间和会员价格 useEffect(() => { getCurrentTime(); }, []); //当时间改变,获取新数据 useEffect(() => { getData("top"); }, [currentTime]); return (
{/* 头部标题 */}
{ router.back(); }} />

动态

{/* 内容 */}
{data.length == 0 && (
)} {data?.map((item, index) => ( {/* */} ))} {null}
); }