لوحة المتصدرين
المحتوى الأكثر حصولًا على سمعة جيدة
المحتوى الأعلى تقييمًا في 03/22/23 في كل الموقع
-
في SQL سمعت أنه يوجد كود يظهر لك البيانات بشكل سريع بدل الأكواد العادية التي تستغرق لجلب بعض البيانات 5 دقائق أو أكثر فهل بوجد فعلا كود يجلب البيانات بشكل سريع ؟ .1 نقطة
-
جرب إضافة الـ effect التالي والذي يقوم بتعديل الحالة setQtyArray عند كل تعديل على الحالة cartItems في اللمف Cart.jsx : useEffect(() => { const ids = cartItems.map((item) => { return item.id; }); const filteredCartItems = qtyArray.filter((item) => ids.indexOf(item.id) !== -1); setQtyArray(filteredCartItems); }, [cartItems]);1 نقطة
-
هذا الكلام غير دقيق، قد يحدث أن تكون هنالك بعض استعلامات SQL التي تأخذ وقتا في التنفيذ أطول من أخرى، ولكن عموما يمكن تنقيح أي استعلام وضبطه وتسريعه. الأمر الذي يعتبر من تفضيلات الاستخدام ومن ضوابط الشيفرة النظيفة.1 نقطة
-
في SQL، يمكن استخدام بعض التقنيات والأوامر لتحسين أداء استعلامات البيانات وجعلها تستجيب بشكل أسرع. على سبيل المثال، يمكن استخدام أمر "INDEX" لإنشاء فهرس للحقول الذي تستخدم في استعلامات البيانات، وهذا يساعد على تسريع عملية البحث وتحديد المعلومات بشكل أسرع. بالإضافة إلى ذلك، يمكن استخدام الأوامر المثل "SELECT" و "WHERE" بطريقة صحيحة لتحسين أداء الاستعلامات، ويمكن أيضًا استخدام أدوات التجميع والفلترة المختلفة مثل "GROUP BY" و "HAVING" و "ORDER BY" للتحكم في ترتيب النتائج وتجميعها وتصفيتها بشكل فعال. كما يمكن استخدام أوامر معينة مثل SELECT TOP و SELECT DISTINCT لجلب عدد محدود من الصفوف أو لجلب القيم المختلفة في حقل محدد، مما يقلل من عدد البيانات التي تحتاج لجلبها وبذلك يتم تحسين الأداء. أيضاً يمكن استخدام الأوامر المتخصصة للتجميع Aggregate Functions مثل SUM و COUNT و AVG وغيرها للعمليات الحسابية البسيطة على البيانات بدلاً من استعلامات SELECT الطويلة التي قد تأخذ وقتاً طويلاً. ومن الأساليب الأخرى لتحسين أداء استعلامات SQL هي تحسين تصميم قواعد البيانات وتحسين أداء الخادم وتحسين مؤشرات الأداء وغيرها من الإجراءات التي تهدف إلى تحسين أداء استعلامات SQL. من الجدير بالذكر أنه لا يوجد "كود سحري" يمكن استخدامه لجلب البيانات بشكل سريع في SQL، وإنما يتعلق الأمر بتحسين أداء استعلامات البيانات باستخدام التقنيات والأوامر المختلفة المتاحة في SQL.1 نقطة
-
نعم قمت بذلك const cartProducts = cartItems.map(item => ({...item, qty:1})) const [qtyArray, setQtyArray] = useState(cartProducts)1 نقطة
-
أنت تستخدم مصفوفة cartItems لتخزين المنتجات في عربة التسوق، ولكن لا تمررها كمدخل لـ CartItem في Cart.jsx. بدلاً من ذلك، تم استخدام qtyArray، والذي يحتوي على قائمة من العناصر التي تم تعديلها بواسطة handlePlus و handleMinus. هذا هو السبب في أن الحذف لا يحدث في المصفوفة cartItems عند النقر على أيقونة الحذف. لحل هذه المشكلة، يمكنك تمرير cartItems كمدخل لـ CartItem في Cart.jsx بدلاً من qtyArray. وبمجرد النقر على زر الحذف، يجب عليك استدعاء دالة removeFromCart وإرسال cartProduct.id كمدخل لها. ثم يجب عليك تحديث المصفوفة cartItems باستخدام setCartItems وإزالة العنصر الذي تم حذفه.1 نقطة
-
1 نقطة
-
جرب تعديل كود الـ login للشكل التالي : import { ChangeEvent, FormEvent, useRef, useState } from "react"; import { Link, Navigate } from "react-router-dom"; import "../scss/styles.scss"; import { UilEye, UilEyeSlash } from "@iconscout/react-unicons"; import api_key from "../Services/Api_Url"; import { LoginType, SignupType } from "../../types/mainTypes"; import axios from "axios"; import { useLogin } from "../Context/Login"; let emailReg = /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; export default function Login() { let { jwt, setJwt, setIsLoggedIn, isLoggedIn } = useLogin(); // email error message const emailRef = useRef<HTMLInputElement>(null); const emailErrorMessage = useRef<HTMLParagraphElement>(null); // email error message const passwordRef = useRef<HTMLInputElement>(null); const passwordErrorMessage = useRef<HTMLParagraphElement>(null); const [isShowPassword, setIsShowPassword] = useState(false); const LoginReq = async ({ email, password }: LoginType) => { const res = await axios.post(`${api_key}/auth/login`, { data: { email, password, }, }); let data = res.data; setJwt(data.data.accessToken); localStorage.setItem("jwt", data.data.accessToken); setIsLoggedIn(true); localStorage.setItem("isLoggedin", "true"); window.location.href = window.location.origin; // الكود المضاف }; function handleSubmit(e: FormEvent<HTMLFormElement>) { e.preventDefault(); // validate email if (emailRef.current.value.toLowerCase().match(emailReg) === null) { emailErrorMessage.current.innerText = "Please Enter A Valid Email !"; emailRef.current.classList.add("invalid"); } else { emailErrorMessage.current.innerText = ""; emailRef.current.classList.remove("invalid"); } // validate password if (passwordRef.current.value.length <= 6) { passwordErrorMessage.current.innerText = "Password Is Too Short !"; passwordRef.current.classList.add("invalid"); } else { passwordErrorMessage.current.innerText = ""; passwordRef.current.classList.remove("invalid"); } let inputs = [emailRef.current, passwordRef.current]; let invalidInputs = []; for (let i = 0; i < inputs.length; i++) { if (inputs[i].classList.contains("invalid")) { invalidInputs.push(inputs[i]); } } if (invalidInputs.length === 0) { // send req console.log(typeof emailRef.current.value); console.log(typeof passwordRef.current.value); LoginReq({ email: emailRef.current.value, password: passwordRef.current.value, }); } } const validateEmail = (e: ChangeEvent<HTMLInputElement>) => { const inputValue = e.target.value; const errorMessage = emailErrorMessage.current; // validate email if (inputValue.toLowerCase().match(emailReg) === null) errorMessage.innerText = "Please Enter A Valid Email !"; else errorMessage.innerText = ""; }; const validatePassword = (e: ChangeEvent<HTMLInputElement>) => { if (e.target.value.length <= 6) { passwordErrorMessage.current.innerText = "Password Is Too Short !"; } else { passwordErrorMessage.current.innerText = ""; } }; document.body.classList.add("login-page"); return ( <> {/* {isLoggedIn ? <Navigate to={"/"} /> : ""} الغي الكود التالي */} <div className='about'> <h1>Mohamed Montaser's Social Media</h1> <p style={{ textTransform: "capitalize" }}> Hello I'm mohamed montaser, I'm Building This Project To Improve my Fullstack Skills. I Hope You Enjoy With My Social Media Website </p> </div> <form id='form' className='form-container' onSubmit={handleSubmit} spellCheck='false'> <div className='form-control form-username'> <label htmlFor='email' className='label'> Email: </label> <input type='text' onChange={(e) => validateEmail(e)} id='email' ref={emailRef} autoFocus /> <p className='error-msg' ref={emailErrorMessage}></p> </div> <div className='form-control form-username'> <label htmlFor='password' className='label'> Password: </label> <div className='input'> <input type={isShowPassword ? "text" : "password"} id='password' ref={passwordRef} onChange={(e) => validatePassword(e)} /> <button type='button' onClick={(e) => setIsShowPassword(!isShowPassword)}> {isShowPassword ? <UilEyeSlash /> : <UilEye />} </button> </div> <p ref={passwordErrorMessage} className='error-msg'></p> </div> <input type='submit' value='Submit' /> <p className='register-link'> You Have Already An Account ? <Link to={"/register"}>Sign up</Link> </p> </form> </> ); }1 نقطة
-
1 نقطة
-
جربت ولكن بيحدث infinite reload ملحوظه انا بستخدم react1 نقطة
-
جرب عمل reload بشكل تلقائي بعد عملية تسجيل الدخول : windows.location.reload() بحيث يتم إعادة تحميل الصفحة بعد عملية تسجيل الدخول بدلاً من ان تقوم بفعلها تلقائياً.1 نقطة
-
هذه المشكلة من المحتمل أن يكون لها 3 أسباب: Android tools مسار JDK ثبيت JAVA_HOME مسار PATH=$PATH:$HOME/Library/Android/Sdk/emulator PATH=$PATH:$HOME/Library/Android/Sdk/tools PATH=$PATH:$HOME/Library/Android/Sdk/tools/bin PATH=$PATH:$HOME/Library/Android/Sdk/platform-tools export ANDROID_HOME=$HOME/Library/Android/ هذه هي المتغيرات المطلوبة أما بالنسبة لتثبيت JDK قم بقراءة الشروط التالية من التوثيق الرسمي ل cordova وبالنسبة ل JAVA_HOME فمن خلال الصوره أعتقد أنك قمت بهذه الخطوة كما أن يمكنك الإطلاع على التوثيق الرسمي لمتابعة الخطوات مرة أخرى إذا كانت هناك مشكلة من خلال هذا الرابط1 نقطة
-
المشكلة تنتج عن عدم وجود الامتدادات اللازمة للتعامل مع XML binding في جهاز الكمبيوتر الخاص بك. حاولي تجربة الخطوات التالية لحل هذه المشكلة: تثبيت حزمة JDK المطلوبة: يجب أن تتأكدي من تثبيت JDK بنجاح على جهاز الكمبيوتر الخاص بك. قومي بزيارة الموقع الرسمي لـ JDK وتنزيل الإصدار المناسب لنظام التشغيل الخاص بك وتثبيته. تحديث مسار البيئة: تأكدي من تحديث مسار البيئة الخاص بك بمسار تثبيت JDK و Android SDK على النحو التالي: في نظام Windows: افتحي "محرر المتغيرات" من خلال الضغط على زر البدء والبحث عن "تحرير المتغيرات البيئية" ، وقم بتحديد "مسار المستخدم" ، وأضيفي المسار الخاص بتثبيت JDK و Android SDK إلى المتغير PATH. 3. تثبيت مكتبة JAXB المطلوبة: قد يتطلب الأمر تثبيت مكتبة JAXB اللازمة لتشغيل البرنامج. ويمكنك تنزيل مكتبة JAXB من موقع Oracle الرسمي وتثبيتها على جهاز الكمبيوتر الخاص بك. حيث قد المشكلة بعدم تثبيت حزمة javax.xml.bind.JAXBException المطلوبة من قبل مكتبة Android SDK التي يستخدمها Cordova. وإذا كنت تستخدمي JDK 9 أو إصدار أحدث، فقد تواجه مشكلة في تثبيت حزمة JAXB بسبب إزالة هذه الحزمة من JDK 9 وما بعده. في هذه الحالة ، يمكن استخدام إصدار JDK أقدم يتضمن حزمة JAXB أو يمكنك تثبيت حزمة JAXB بشكل منفصل. بعد تثبيت حزمة JAXB ، يجب أن يتمكن Cordova من تثبيت Android target بنجاح. وإذا واجهت أي مشاكل أخرى ، فيمكنك مراجعة مستندات Cordova الرسمية.1 نقطة
-
يتم استدعاء أمر "avdmanager list target" عادة عند تشغيل محاكي أندرويد على نظام التشغيل الخاص بك. والذي يشير إلى أن هناك خطأ ما في تشغيل الأمر. يمكن أن يكون هناك عدة أسباب لحدوث هذا الخطأ. فيما يلي بعض الأسباب المحتملة وكيفية حلها: يجب تثبيت Android SDK وإعداد المسارات اللازمة للاستخدام. يجب عليك التحقق من أن SDK مثبت بشكل صحيح وأن جميع المتطلبات الموجودة في المسارات اللازمة تم تعيينها بشكل صحيح. يمكن العثور على تفاصيل المسارات اللازمة وكيفية تعيينها في الوثائق الخاصة بـ Android SDK. يجب عليك التأكد من أن محاكي Android مثبت بشكل صحيح وتم تكوينه بشكل صحيح. يمكن أن يؤدي تعيين المتغيرات بشكل غير صحيح إلى تشغيل الأمر بشكل غير صحيح. يمكن أن يكون هناك خطأ في الأمر نفسه. يمكنك محاولة تشغيل الأمر مباشرة من داخل محرر الأوامر أو الطرفية للتحقق من صحة الأمر. قد يكون هناك خطأ في بيئة التشغيل. قد تحتاج إلى تحديث بيئة التشغيل أو تثبيت حزم برامج إضافية. نوصي بتجربة هذه الحلول بالترتيب والتحقق من النتائج بعد كل خطوة. إذا لم يتم حل المشكلة.1 نقطة