我正在使用带有 Next.js 的 react redux,如果他符合要求,我想将用户重定向到某个页面。我将它添加到我的useEffect
并且它可以工作,但是每次当我返回主页时,它都会再次重定向到同一页面。如果我刷新将清除 redux 状态的页面,它工作正常。
useEffect(() => {
const validateUser = (services: ServiceType[]) => {
if (services.length === 0) {
router.push('/dashboard/expert/onboard');
} else {
router.push(
'/dashboard/expert/[expertname]?view=overview',
`/dashboard/expert/${userProfile.expertProfile.name}?view=overview`
);
}
};
if (userProfile) {
if (userProfile.isVerified) {
if (nextPath && nextPath.as) {
router.push(nextPath.href, nextPath.as);
} else if (userProfile.isExpert) {
setModalVisible(false);
if (services) {
validateUser(services);
}
// setAlreadySignedUpModalVisible(true);
} else if (loginResponse && loginResponse.expertApplications.rejected > 0) {
setModalVisible(false);
setApplicationRejectedModalVisible(true);
} else if (loginResponse && loginResponse.expertApplications.pending > 0) {
setModalVisible(false);
setApplicationReceivedModalVisible(true);
setIsPendingExpert(true);
} else {
if (nextPath) {
router.push(nextPath.href);
}
setModalVisible(false);
}
} else {
setModalVisible(false);
setEmailVerifyModalVisible(true);
}
}
}, [
loginResponse,
setAlreadySignedUpModalVisible,
setApplicationReceivedModalVisible,
setApplicationRejectedModalVisible,
setEmailVerifyModalVisible,
setModalVisible,
userProfile,
nextPath,
setIsPendingExpert,
services,
]);