diff --git a/src/renderer/src/pages/notes/HeaderNavbar.tsx b/src/renderer/src/pages/notes/HeaderNavbar.tsx index 81f5668395..2b63369400 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, useRef, useState } from 'react' +import { useCallback, useEffect, useMemo, useRef, useState } from 'react' import styled from 'styled-components' import { menuItems } from './MenuConfig' @@ -19,9 +19,6 @@ const logger = loggerService.withContext('HeaderNavbar') const HeaderNavbar = ({ notesTree, getCurrentNoteContent, onToggleStar, onExpandPath, onRenameNode }) => { const { showWorkspace, toggleShowWorkspace } = useShowWorkspace() const { activeNode } = useActiveNode(notesTree) - const [breadcrumbItems, setBreadcrumbItems] = useState< - Array<{ key: string; title: string; treePath: string; isFolder: boolean }> - >([]) const [titleValue, setTitleValue] = useState('') const titleInputRef = useRef(null) const { settings, updateSettings } = useNotesSettings() @@ -146,13 +143,12 @@ const HeaderNavbar = ({ notesTree, getCurrentNoteContent, onToggleStar, onExpand }, [activeNode]) // 构建面包屑路径 - useEffect(() => { + const breadcrumbItems = useMemo(() => { if (!activeNode || !notesTree) { - setBreadcrumbItems([]) - return + return [] } const node = findNode(notesTree, activeNode.id) - if (!node) return + if (!node) return [] const pathParts = node.treePath.split('/').filter(Boolean) const items = pathParts.map((part, index) => { @@ -166,7 +162,7 @@ const HeaderNavbar = ({ notesTree, getCurrentNoteContent, onToggleStar, onExpand } }) - setBreadcrumbItems(items) + return items }, [activeNode, notesTree]) return (