fix: 移除登录页客户端兜底逻辑,避免水合时序导致的 Failed to fetch
移除 useEffect 中的客户端 fetch 兜底,完全依赖 SSR 注入机构数据。 避免水合时 initialOrgs 为空触发客户端请求,导致移动端出现 Failed to fetch 错误。
This commit is contained in:
@@ -29,18 +29,8 @@ export default function LoginForm({ initialOrgs }: { initialOrgs: Organization[]
|
|||||||
const { login, switchOrg } = useAuthStore();
|
const { login, switchOrg } = useAuthStore();
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
|
|
||||||
// SSR 已注入机构时直接使用,无需再请求;
|
// SSR 完全处理机构数据,移除客户端兜底逻辑避免水合时序问题和移动端 fetch 失败
|
||||||
// 仅当服务端取数失败(首屏机构为空)时,客户端兜底拉取一次
|
// 如果 SSR 失败(initialOrgs 为空),直接显示空状态或禁用表单
|
||||||
useEffect(() => {
|
|
||||||
if (initialOrgs.length > 0) return;
|
|
||||||
api
|
|
||||||
.get<Organization[]>("/api/v1/organizations")
|
|
||||||
.then((data) => {
|
|
||||||
setOrgs(data);
|
|
||||||
if (data.length > 0) setSelectedOrg(data[0].id);
|
|
||||||
})
|
|
||||||
.catch(() => {});
|
|
||||||
}, [initialOrgs.length]);
|
|
||||||
|
|
||||||
const handleSubmit = async (e: React.FormEvent) => {
|
const handleSubmit = async (e: React.FormEvent) => {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
|
|||||||
Reference in New Issue
Block a user