From 46bc187a9dd3c2dcae0d806cf074720a3f09b052 Mon Sep 17 00:00:00 2001 From: SongPro Date: Thu, 3 Jul 2025 20:54:23 +0800 Subject: [PATCH] =?UTF-8?q?refactor(search):=20=E7=A7=BB=E9=99=A4=E6=9C=AA?= =?UTF-8?q?=E4=BD=BF=E7=94=A8=E7=9A=84useRef=E5=B9=B6=E6=94=B9=E7=94=A8get?= =?UTF-8?q?ElementById=E8=81=9A=E7=84=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 移除searchInputRef的useRef引用,改用document.getElementById直接获取DOM元素进行聚焦操作,简化代码结构 --- src/app/search/page.tsx | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/app/search/page.tsx b/src/app/search/page.tsx index bce9bee..43ad1d5 100644 --- a/src/app/search/page.tsx +++ b/src/app/search/page.tsx @@ -3,7 +3,7 @@ import { Search, X } from 'lucide-react'; import { useRouter, useSearchParams } from 'next/navigation'; -import { Suspense, useEffect, useMemo, useRef, useState } from 'react'; +import { Suspense, useEffect, useMemo, useState } from 'react'; import { addSearchHistory, @@ -27,7 +27,6 @@ function SearchPageClient() { const [isLoading, setIsLoading] = useState(false); const [showResults, setShowResults] = useState(false); const [searchResults, setSearchResults] = useState([]); - const searchInputRef = useRef(null); // 视图模式:聚合(agg) 或 全部(all),默认值由环境变量 NEXT_PUBLIC_AGGREGATE_SEARCH_RESULT 决定 const [viewMode, setViewMode] = useState<'agg' | 'all'>( @@ -52,7 +51,7 @@ function SearchPageClient() { useEffect(() => { // 无搜索参数时聚焦搜索框 - !searchParams.get('q') && searchInputRef.current?.focus(); + !searchParams.get('q') && document.getElementById('searchInput')?.focus(); getSearchHistory().then(setSearchHistory); }, []); @@ -116,7 +115,7 @@ function SearchPageClient() {
setSearchQuery(e.target.value)}