fix(contact): 修复静态导出时 useSearchParams 需要 Suspense 的问题

- 将 ContactFormContent 组件用 Suspense 包裹
- 添加加载中 fallback 状态
- 确保静态导出兼容性
This commit is contained in:
张翔
2026-04-21 08:38:17 +08:00
parent 46cff87f27
commit 2fc1a586f8
+14 -2
View File
@@ -1,6 +1,6 @@
'use client';
import { useState, useEffect, useRef } from 'react';
import { useState, useEffect, useRef, Suspense } from 'react';
import { useSearchParams } from 'next/navigation';
import { z } from 'zod';
import { Button } from '@/components/ui/button';
@@ -28,7 +28,7 @@ interface FormErrors {
message?: string;
}
export default function ContactPage() {
function ContactFormContent() {
const searchParams = useSearchParams();
const isSuccessFromRedirect = searchParams.get('success') === 'true';
const [isVisible, setIsVisible] = useState(false);
@@ -372,3 +372,15 @@ export default function ContactPage() {
</main>
);
}
export default function ContactPage() {
return (
<Suspense fallback={
<main className="min-h-screen bg-white flex items-center justify-center">
<div className="animate-pulse text-[#5C5C5C]">...</div>
</main>
}>
<ContactFormContent />
</Suspense>
);
}