<>
<AiOutlineWarningclassName="text-red-500 dark:text-red-400 text-6xl mx-auto animate-pulse mb-4"/><h1className="text-xl font-semibold text-gray-800 dark:text-white">
error
</h1><pclassName="text-sm text-gray-600 dark:text-gray-300 mt-2">
Please check your verification link or request a new one.
</p>
</>
المشكلة: في الوقت الحالي، عند فتح صفحة التحقق، يظهر أولًا مكون النجاح لبضع ثوانٍ، ثم يتحول فجأة إلى مكون الفشل، رغم أنّ عملية التحقق في قاعدة البيانات تمّت بنجاح.
سؤالي:
لماذا يظهر مكون النجاح أولًا لثوانٍ ثم يتحول إلى مكون الفشل، رغم أنّ التحقق في قاعدة البيانات تم بنجاح؟ وكيف يمكنني تعديل الكود الأمامي بحيث يظهر المكون الصحيح مباشرة بناءً على نتيجة العملية دون هذا التبديل الغير مرغوب فيه؟
السؤال
محمود سعداوي2
السلام عليكم.
قمت ببناء مكون React للتحقق مما إذا كان المستخدم قد فعل حسابه. حسب نتيجة العملية، أريد عرض أحد المكونات التالية:
1.نجاح التحقق:
2.فشل التحقق
المشكلة:
في الوقت الحالي، عند فتح صفحة التحقق، يظهر أولًا مكون النجاح لبضع ثوانٍ، ثم يتحول فجأة إلى مكون الفشل، رغم أنّ عملية التحقق في قاعدة البيانات تمّت بنجاح.
للمزيد من التوضيح تفضلوا:
كود الواجهة الخلفية (Node.js/Express):
export const verifyAccount = asyncHandler(async(req, res) => { const { userId, token } = req.params // Check if user exist const user = await User.findById(userId) if (!user) { return res.status(400).json({ message: "Invalid Verification Link" }) } const verificationToken = await VerificationToken.findOne({ userId: user._id, token: token, }) if (!verificationToken) { return res.status(400).json({ message: "Invalid Link" }); } user.isAccountVerified = true await user.save() await VerificationToken.deleteOne({ _id: verificationToken._id }); res.status(200).json({ message: "Your Account is Verified!" }) })
علما أنه في حتى حاة ظهور المكون الخاص بفشل العملية في الواجهة الأمامية فإنه تم تفعيل
user.isAccountVerified = true await user.save() await VerificationToken.deleteOne({ _id: verificationToken._id });
أما بالنسبة للواجهة الأمامية
export const verifyEmailApi = async ({ userId, token }) => { try { const res = await axios.get(summaryApi.auth.verify(userId, token)) console.log("api", res.data) return res.data } catch (error) { console.error(error); throw error; } }
export const useVerifyEmail = () => { return useMutation({ mutationFn: verifyEmailApi, onSuccess: (data) => { console.log(data) } }); }
سؤالي:
لماذا يظهر مكون النجاح أولًا لثوانٍ ثم يتحول إلى مكون الفشل، رغم أنّ التحقق في قاعدة البيانات تم بنجاح؟ وكيف يمكنني تعديل الكود الأمامي بحيث يظهر المكون الصحيح مباشرة بناءً على نتيجة العملية دون هذا التبديل الغير مرغوب فيه؟
شكرا جزيلا.
10 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.