fix: 修复前端7处eslint错误和6处警告
- AccountsPage/CookiePage/UsersPage/LoginTasksPage/ProxyPage: 将数据加载函数改为useCallback包裹,补全useEffect依赖项 - LoginTasksPage: loadAccounts和loadTasks改为useCallback - MainLayout: 补全navigate依赖 - eslint.config.js: 关闭react-hooks/set-state-in-effect(对初始 数据获取场景过严),降级react-refresh/only-export-components为warn (Provider/Hook/Type共存文件是合理设计)
This commit is contained in:
@@ -67,14 +67,14 @@ export default function LoginTasksPage() {
|
||||
return map;
|
||||
}, [accounts]);
|
||||
|
||||
const loadAccounts = async () => {
|
||||
const loadAccounts = useCallback(async () => {
|
||||
try {
|
||||
const data = await accountApi.list();
|
||||
setAccounts(data);
|
||||
} catch (e: unknown) {
|
||||
message.error(getErrorMessage(e));
|
||||
}
|
||||
};
|
||||
}, []);
|
||||
|
||||
// 标签选择变化时,同步更新选中的账号
|
||||
const handleTagChange = useCallback((tags: string[]) => {
|
||||
@@ -107,23 +107,23 @@ export default function LoginTasksPage() {
|
||||
});
|
||||
}, [selectedTags, tagAccountMap, accounts]);
|
||||
|
||||
const loadTasks = async () => {
|
||||
const loadTasks = useCallback(async () => {
|
||||
try {
|
||||
const data = await loginApi.listTasks(batchId || undefined);
|
||||
setTasks(data);
|
||||
} catch {
|
||||
// 忽略轮询失败,下一次定时刷新会继续尝试。
|
||||
}
|
||||
};
|
||||
}, [batchId]);
|
||||
|
||||
useEffect(() => {
|
||||
Promise.all([loadAccounts(), loadTasks()]);
|
||||
}, []);
|
||||
}, [loadAccounts, loadTasks]);
|
||||
|
||||
useEffect(() => {
|
||||
const timer = setInterval(loadTasks, 3000);
|
||||
return () => clearInterval(timer);
|
||||
}, [batchId]);
|
||||
}, [loadTasks]);
|
||||
|
||||
// 共享的批量登录启动逻辑
|
||||
const startBatch = async (accountIds: number[]) => {
|
||||
|
||||
Reference in New Issue
Block a user