添加接口 列表接口 第一次更新逻辑

This commit is contained in:
张成
2025-09-10 11:11:12 +08:00
parent 8a1a2af1e9
commit d38baa9c5b
3 changed files with 17 additions and 9 deletions

View File

@@ -62,6 +62,15 @@ const ListPage = () => {
getLocation()
}, []);
// 监听距离和排序方式变化,自动调用接口
useEffect(() => {
// 只有当 distanceQuickFilter 有值时才调用接口
if (distanceQuickFilter?.distance !== undefined || distanceQuickFilter?.quick !== undefined) {
console.log('距离或排序方式发生变化,重新获取数据:', distanceQuickFilter);
getMatchesData();
}
}, [distanceQuickFilter?.distance, distanceQuickFilter?.quick]);
// 获取位置信息
const getLocation = async () => {
const location = await getCurrentLocationInfo()

View File

@@ -154,7 +154,7 @@ export const useListStore = create<TennisStore>()((set, get) => ({
},
// 获取列表数据(常规搜索)
fetchMatches: async (params) => {
fetchMatches: async (params, isFirstLoad = false) => {
set({ loading: true, error: null });
const { getSearchParams, setListData, distanceQuickFilter } = get();
@@ -172,6 +172,11 @@ export const useListStore = create<TennisStore>()((set, get) => ({
if (isIntegrate) {
reqParams.order = "";
fetchFn = getGamesIntegrateList;
// 第一次进入页面时传入 isRefresh 参数
if (isFirstLoad) {
reqParams.isRefresh = true;
}
}
console.log("===fetchMatches 获取列表数据参数:", reqParams);
@@ -187,7 +192,6 @@ export const useListStore = create<TennisStore>()((set, get) => ({
}
const { count, rows } = data;
setListData({
// recommendList: rows || [],
error: '',
data: rows || [],
loading: false,
@@ -246,12 +250,7 @@ export const useListStore = create<TennisStore>()((set, get) => ({
// 获取列表数据
getMatchesData: () => {
const { fetchMatches } = get();
fetchMatches();
// if (distanceQuickFilter?.quick === "0") {
// getIntegrateListData();
// } else {
// fetchMatches();
// }
fetchMatches({}, true); // 第一次进入页面,传入 isFirstLoad = true
},
// 获取历史搜索数据

View File

@@ -61,7 +61,7 @@ export interface ListState {
}
export interface ListActions {
fetchMatches: (params?: Record<string, any>) => Promise<void>
fetchMatches: (params?: Record<string, any>,isFirstLoad?: Boolean) => Promise<void>
// getIntegrateListData: (params?: Record<string, any>) => Promise<void>
getMatchesData: () => void
clearError: () => void