fix(contact): 修复静态导出时 useSearchParams 需要 Suspense 的问题
- 将 ContactFormContent 组件用 Suspense 包裹 - 添加加载中 fallback 状态 - 确保静态导出兼容性
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
'use client';
|
'use client';
|
||||||
|
|
||||||
import { useState, useEffect, useRef } from 'react';
|
import { useState, useEffect, useRef, Suspense } from 'react';
|
||||||
import { useSearchParams } from 'next/navigation';
|
import { useSearchParams } from 'next/navigation';
|
||||||
import { z } from 'zod';
|
import { z } from 'zod';
|
||||||
import { Button } from '@/components/ui/button';
|
import { Button } from '@/components/ui/button';
|
||||||
@@ -28,7 +28,7 @@ interface FormErrors {
|
|||||||
message?: string;
|
message?: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
export default function ContactPage() {
|
function ContactFormContent() {
|
||||||
const searchParams = useSearchParams();
|
const searchParams = useSearchParams();
|
||||||
const isSuccessFromRedirect = searchParams.get('success') === 'true';
|
const isSuccessFromRedirect = searchParams.get('success') === 'true';
|
||||||
const [isVisible, setIsVisible] = useState(false);
|
const [isVisible, setIsVisible] = useState(false);
|
||||||
@@ -372,3 +372,15 @@ export default function ContactPage() {
|
|||||||
</main>
|
</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>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user