const [gasTrajectoryData, setGasTrajectoryData] = useState([])
const [qpNo, setQpNo] = useState("")
const [hasMore, setHasMore] = useState(true)
const [currentPage, setCurrentPage] = useState(1)
const pageSize = 10
useEffect(() => {
loadMore()
}, [])
const onSearch = async () => {
setCurrentPage(1)
setGasTrajectoryData([])
setHasMore(true)
await loadMore()
}
const loadMore = async () => {
try {
const response = await apiClient.get(
`/qpsf/airBottleData/${currentPage}/${pageSize}/?qpNo=${qpNo}`
)
if (response.data.data.length === 0) {
setHasMore(false) // 没有数据
} else {
setGasTrajectoryData([...gasTrajectoryData, ...response.data.data])
setCurrentPage(currentPage + 1)
}
} catch (error) {
console.error("Error fetching data:", error)
}
}
照着官网的InfiniteScroll 组件实现带搜索的无限滚动,但是在搜索时出现了一点小问题,第一次点击搜索时,没有数据,再点击一次后数据就有了,打开控制台发现currentPage是旧值导致搜不到
加了await和延迟几秒都没用,不知道该怎么解决了