From 8d0285524994d0e87df22bec25af337c28458cd9 Mon Sep 17 00:00:00 2001 From: cloud370 Date: Wed, 24 Sep 2025 05:33:06 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=88=86=E9=A1=B5?= =?UTF-8?q?=E5=A4=A7=E5=B0=8F=E5=88=87=E6=8D=A2=E4=B8=8D=E7=94=9F=E6=95=88?= =?UTF-8?q?=E7=9A=84BUG?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 使用useCallback确保fetchAccounts函数正确依赖最新状态 - 修复handlePageSizeChange中的状态更新逻辑 - 将分页选项从100000改为10000,更符合实际使用需求 - 添加调试日志帮助排查问题 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- components/accounts/account-table.tsx | 2 +- lib/hooks/use-accounts.ts | 18 +++++++++++++----- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/components/accounts/account-table.tsx b/components/accounts/account-table.tsx index 45a86f3..94ee9e5 100644 --- a/components/accounts/account-table.tsx +++ b/components/accounts/account-table.tsx @@ -72,7 +72,7 @@ export function AccountTable({ 20 100 1000 - 100000 + 10000 diff --git a/lib/hooks/use-accounts.ts b/lib/hooks/use-accounts.ts index 186b88b..ee250ac 100644 --- a/lib/hooks/use-accounts.ts +++ b/lib/hooks/use-accounts.ts @@ -1,4 +1,4 @@ -import { useState, useEffect } from 'react'; +import { useState, useEffect, useCallback } from 'react'; import { Account, ListAccountsBody, @@ -91,7 +91,8 @@ export function useAccounts(): UseAccountsReturn { }; // 获取账户列表 - const fetchAccounts = async () => { + const fetchAccounts = useCallback(async () => { + console.log('fetchAccounts called with pagination:', pagination); setLoading(true); try { const body: ListAccountsBody = { @@ -103,8 +104,10 @@ export function useAccounts(): UseAccountsReturn { sort }; + console.log('Sending request with body:', body); const response = await apiClient.getAccountsList(body); if (response.code === BusinessCode.Success && response.data) { + console.log('Response received:', response.data.list.length, 'accounts'); setAccounts(response.data.list); setPagination(prev => ({ ...prev, @@ -118,7 +121,7 @@ export function useAccounts(): UseAccountsReturn { } finally { setLoading(false); } - }; + }, [filters, pagination.page, pagination.pageSize, sort]); // 处理筛选变化 const handleFilterChange = (key: string, value: any) => { @@ -133,7 +136,12 @@ export function useAccounts(): UseAccountsReturn { // 处理每页大小变化 const handlePageSizeChange = (pageSize: number) => { - setPagination({ ...pagination, pageSize, page: 1 }); + console.log('handlePageSizeChange called with:', pageSize); + setPagination(prev => { + const newPagination = { ...prev, pageSize, page: 1 }; + console.log('Setting new pagination:', newPagination); + return newPagination; + }); }; // 处理排序 @@ -250,7 +258,7 @@ export function useAccounts(): UseAccountsReturn { // 初始化数据 useEffect(() => { fetchAccounts(); - }, [filters, pagination.page, pagination.pageSize, sort]); + }, [fetchAccounts]); // 只在开始时获取统计数据 useEffect(() => {