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 router = useRouter();
|
||||
|
||||
// SSR 已注入机构时直接使用,无需再请求;
|
||||
// 仅当服务端取数失败(首屏机构为空)时,客户端兜底拉取一次
|
||||
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]);
|
||||
// SSR 完全处理机构数据,移除客户端兜底逻辑避免水合时序问题和移动端 fetch 失败
|
||||
// 如果 SSR 失败(initialOrgs 为空),直接显示空状态或禁用表单
|
||||
|
||||
const handleSubmit = async (e: React.FormEvent) => {
|
||||
e.preventDefault();
|
||||
|
||||
Reference in New Issue
Block a user