比如一个最基础的刷新列表功能:
刷新调取的函数
const onRefresh = async () => {
setRefreshing(true);
setPageNo(1);
setIsListEnd(false);
setList([]);
initList();
setRefreshing(false);
}
拿数据的函数
const initList = async () => {
if (isLoading || isListEnd) return;
setIsLoading(true);
//在此处调取 api
let res =......;
setList(list.concat(res));
setPageNo(pageNo + 1);
setIsLoading(false);
if (res.length < pageSize) setIsListEnd(true);
}
在刷新函数里 set 的值在 initList 函数里使用时都不是最新的,没有 callback 使用咋那么不得劲呢,有没有大佬指点下该怎么改,谢谢了。
刷新调取的函数
const onRefresh = async () => {
setRefreshing(true);
setPageNo(1);
setIsListEnd(false);
setList([]);
initList();
setRefreshing(false);
}
拿数据的函数
const initList = async () => {
if (isLoading || isListEnd) return;
setIsLoading(true);
//在此处调取 api
let res =......;
setList(list.concat(res));
setPageNo(pageNo + 1);
setIsLoading(false);
if (res.length < pageSize) setIsListEnd(true);
}
在刷新函数里 set 的值在 initList 函数里使用时都不是最新的,没有 callback 使用咋那么不得劲呢,有没有大佬指点下该怎么改,谢谢了。