在我的handleFinish函数中成功提交表单后,我尝试重定向到欢迎页面。由于 try/catch 块中没有引发错误,因此我将表单标记为“完整”并期望路由器进行重定向。然而,我遇到了“未处理的运行时错误:类型错误:网络错误”几(长)秒,然后它最终重定向到“/welcome”。
`
const handleFinish = async () => {
setIsLoading(true);
if (!formState.data.privateMetadata.agreement) {
setAlertMessage('Please confirm the terms and conditions');
setShowAlert(true);
setIsLoading(false);
return;
}
const user = constructUser(formState);
try {
console.log('Benutzerdaten werden aktualisiert...');
await updateUserData(locale, user);
console.log('Vor- und Nachname werden aktualisiert...');
await updateFirstAndLastName(locale, user);
console.log('Compliance-Status wird aktualisiert...');
await updateCompilance(user.id);
setAlertMessage('');
setShowAlert(false);
setIsLoading(false);
console.log('Weiterleitung zu:', `/${locale}/welcome`);
router.push(`/${locale}/welcome`);
} catch (error) {
console.error('Fehler während der Anmeldung:', error);
setAlertMessage('Bei der Anmeldung ist ein Fehler aufgetreten');
setShowAlert(true);
setIsLoading(false);
}
setAlertMessage('');
setShowAlert(false);
setIsLoading(false);
setIsComplete(true);
};`
在我的handleFinish函数中将表单标记为完成后,我尝试使用router.push('/welcome')。我希望它立即重定向到欢迎页面,没有任何问题。相反,在重定向最终发生之前,我遇到了几秒钟的“未处理的运行时错误:类型错误:网络错误”。我已经将 API 调用包装在 try/catch 块中,并且那里没有记录任何错误。我不确定为什么在成功重定向之前会发生这种延迟和错误。
我在 8969 端口的后台运行 Sentry 的 Spotlight 来进行错误跟踪。但是,在 Next.js 中处理重定向时,此设置会导致错误。我没有深入调查这个问题,但关闭后一切正常。