From 84f590ec7b36eb665c9206148643e421ba954452 Mon Sep 17 00:00:00 2001 From: icarus Date: Tue, 14 Oct 2025 18:14:15 +0800 Subject: [PATCH] fix(HeaderNavbar): use startTransition for title update in useEffect to avoid synchronously setState fix: Error: Calling setState synchronously within an effect can trigger cascading renders --- src/renderer/src/pages/notes/HeaderNavbar.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/renderer/src/pages/notes/HeaderNavbar.tsx b/src/renderer/src/pages/notes/HeaderNavbar.tsx index 2b63369400..9b0dea8a71 100644 --- a/src/renderer/src/pages/notes/HeaderNavbar.tsx +++ b/src/renderer/src/pages/notes/HeaderNavbar.tsx @@ -9,7 +9,7 @@ import { findNode } from '@renderer/services/NotesTreeService' import { Dropdown, Input, Tooltip } from 'antd' import { t } from 'i18next' import { MoreHorizontal, PanelLeftClose, PanelRightClose, Star } from 'lucide-react' -import { useCallback, useEffect, useMemo, useRef, useState } from 'react' +import { startTransition, useCallback, useEffect, useMemo, useRef, useState } from 'react' import styled from 'styled-components' import { menuItems } from './MenuConfig' @@ -138,7 +138,7 @@ const HeaderNavbar = ({ notesTree, getCurrentNoteContent, onToggleStar, onExpand // 同步标题值 useEffect(() => { if (activeNode?.type === 'file') { - setTitleValue(activeNode.name.replace('.md', '')) + startTransition(() => setTitleValue(activeNode.name.replace('.md', ''))) } }, [activeNode])