fix: 修复 ESLint set-state-in-effect 错误 — useEffect 加 prevOpen 守卫
CI / Rust 检查 (Check + Clippy + Test) (push) Has been cancelled
CI / 前端检查 (TypeScript + Lint + Test) (push) Has been cancelled

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
2026-05-29 17:02:55 +08:00
parent 44cd6c6595
commit 5c73321ce6
3 changed files with 14 additions and 4 deletions
+4 -2
View File
@@ -1,4 +1,4 @@
import { useState, useEffect, useMemo } from 'react';
import { useState, useEffect, useMemo, useRef } from 'react';
import { invoke } from '@tauri-apps/api/core';
import { useTranslation } from 'react-i18next';
import { Modal } from '@/components/ui/Modal';
@@ -35,8 +35,10 @@ export function AnalyzeDialog({ open, onClose }: Props) {
const [toolGroups, setToolGroups] = useState<ToolGroup[]>([]);
const [searchQuery, setSearchQuery] = useState('');
const prevOpen = useRef(false);
useEffect(() => {
if (!open) return;
if (!open || prevOpen.current) return;
prevOpen.current = open;
setLoading(true);
const paths = getEnabledPaths();
Promise.all([
+4 -2
View File
@@ -1,4 +1,4 @@
import { useState, useEffect, useCallback } from 'react';
import { useState, useEffect, useCallback, useRef } from 'react';
import { invoke } from '@tauri-apps/api/core';
import { useTranslation } from 'react-i18next';
import { Modal } from '@/components/ui/Modal';
@@ -39,8 +39,10 @@ export function ProfileDialog({ open, onClose }: Props) {
setProfiles(list);
}, []);
const prevOpen = useRef(false);
useEffect(() => {
if (open) refreshProfiles();
if (open && !prevOpen.current) refreshProfiles();
prevOpen.current = open;
}, [open, refreshProfiles]);
const handleSave = async () => {