-
المساهمات
651 -
تاريخ الانضمام
-
تاريخ آخر زيارة
-
عدد الأيام التي تصدر بها
4
نوع المحتوى
ريادة الأعمال
البرمجة
التصميم
DevOps
التسويق والمبيعات
العمل الحر
البرامج والتطبيقات
آخر التحديثات
قصص نجاح
أسئلة وأجوبة
كتب
دورات
كل منشورات العضو علي عبد محسن
-
لديك مشكلة في keystore حيث تحتاج إعادة توليده من خلال الخطوات التالية #أو مايتوفر لديك لتنفيذ الأوامر التالية cmd إستخدم #بإسم المستخدم في جهازك عند تنفيذك الأمر التالي <USER_NAME> إستبدل cd /Users/<USER_NAME>/.android/ # نفذ أمر الحذف التالي rm -rf debug.keystore # الأن نقوم بتوليد مفتاح جديد بتنفيذ الأمر التالي keytool -genkey -v -keystore debug.keystore -storepass android -alias androiddebugkey -keypass android -keyalg RSA -keysize 2048 -validity 10000 -dname "C=US, O=Android, CN=Android Debug #في المشروع ونفذ الأمر التالي app جديد أو مايتوفر لديك في مسار cmd بعد تنفيذ الأمر بنجاح إفتح ./gradlew build #مباشرة من اندروبد ستوديو والإستغناء عن تنفيذ الامر السابق build يمكنك أيضاُ عمل لاعمل
-
في Reactjs وقبل إضافة hooks الى المنصة لم يكن هناك طريقة لإستعمال state و دوال life-cycles إلا من خلال طريقة class components ولكن بعد إضافة hooks أصبح كل ذلك متاحاً من خلال functional components. من ناحية سرعة الأداء فنظرياً إنشاء instance من class قد يستغرق وقتاً أطول من إستدعاء دالة function عند التنفيذ في جافاسكربت لكن عملياً لايوجد فرق يُذكر في Reactjs. يمكن القول أن الفرق الأساسي الأن هو في طريقة الكتابة كما أن كتابة functional component قد يتطلب تكويد أقل من حالة class component. من المهم أن نعرف أيضاً أن فريق React يذكر في ال documentations أنه ينصح بكتابة الcomponents الجديدة بتقنية hooks.
-
يبدو من خلال رسائل الخطأ المرفقة أن لديك مشكلة في توافق بعض إصدارات الحزم المثبتة ويمكن حل المشكلة بأكثر من طريقة وسنجرب أسهلها حيث تحتاج تغيير إسم ملف package-lock.json الى أي إسم أخر للحفاظ عليه كنسخة إحتياطية تستطيع العودة إليها في حال لم ينجح معك الحل , ثم تحذف مجلد node_modules من المشروع ثم تقوم بتنفيذ الأمر npm install وعندها سيتم تثبيت كل شئ من جديد وسيتولد لديك ملف package-lock.json جديد بعد تنفيذ أمر التثبيت بدون مشاكل. جرب بعدها أولاً تشغيل المشروع بنجاح ثم نفذ أمر رفع التطبيق. في حال لم تفلح يمكنك مشاركة ملف المشروع مضغوطاً بدون مجلد node_modules لإلقاء نظرة عليه وأقتراح حل أخر.
-
حتى تعمل خدمة الإشعارات لديك عندما يكون التطبيق مغلقاً تحتاج تشغيل ال service الخاصة بها في الactivity ذات العلاقة في onStop وسنفترض في المثال التالي أنك قمت مسبقاً بإنشاء الservice وليكن إسمها NotificationService وهنا يتم إستعمالها وكما يلي public class MainActivity extends AppCompatActivity { @Override protected void onCreate (Bundle savedInstanceState) { super .onCreate(savedInstanceState) ; setContentView(R.layout. activity_main ) ; } @Override protected void onStop () { super .onStop() ; startService( new Intent( this, NotificationService.class )) ; // هنا تشغل الخدمة } public void closeApp (View view) { finish() ; } }
-
الحل التالي يقوم بالضبط بما تريد ولكنه يعمل على المثال الذي أوردته في سؤالك, فإذا قمت بتعديل html في مثالك فقد تحتاج لتعديل جافاسكربت في الحل الذي وضعناه لك ليعمل بشكل صحيح. لاحظ الكود التالي المشروح يقوم بتصفية عناصر div المكررة إعتماداً على محتواها النصي وليس المعرف id وكما يلي <!DOCTYPE html> <html> <head> <style> .myDiv { border: 5px outset red; background-color: lightblue; text-align: center; } </style> </head> <body> <h1>The div element</h1> <div id="one">1</div> <div id="tow">2</div> <div id="tow">2</div> <div id="three">3</div> <script> (function(){ // نعمل دالة ذاتية الإقلاع بعد ضمان تحميل مستند الصفحة بنجاح // نجلب جميع الحاويات ذات الوسم المطلوب const divs= document.getElementsByTagName("div") let array= Array.from(divs) // نحول الوسوم الناتجة من الخطوة السابقة الى مصفوفة array.forEach( d =>{ // نعمل حلقة تكرار على مصفوفة الوسوم let count=0 // ننشئ متغير لحساب عدد مرات تكرار كل وسم إعتماداً على محتواه النصي Array.from(divs).forEach(x => { // حلقة تكرار داخلية للتحقق من عدم ورود كل وسم بنصص مكرر if(x.textContent=== d.textContent){// شرط إزالة الوسم ذو النص المكرر count++ } }) if(count>1){d.remove()} // نحذف الوسم ذو النص المكرر }) })() </script> </body> </html>
-
إذا كنت تستعمل react-router-dom v6 فيمكنك إستعمال الأداة redirect لإعادة توجيه المستخدم الى صفحة ما بعد إتمام action معين, كما يمكنك ببساطة إستعمال JavaScript للوصول الى نفس النتيجة وكما يلي ... import { redirect } from "react-router-dom"; // إستيراد const loader = async () => { const user = await getUser(); // جلب بيانات معينة مثلاً if (!user) { // home على فرض أن الصفحة الرئيسية لديك على العنوان return redirect("/home"); // التوجه الى الصفحة الرئيسية //location يمكنك إيضاً عمل إعادة لتوجيه بإستعمال // window.location.replace("/home"); // التوجه الى الصفحة الرئيسية } }; ...
- 2 اجابة
-
- 1
-
يمكنك الإستعانة بالكود التالي مع تغيير ما يلزم تغييره لمطابقة المطلوب. في المثال التالي نستخدم facebook sdk لتوليد زر المشاركة مع القليل من HTML وكما يلي <!-- body ضع هذا الكود بعد فتح الوسم --> … <div id="fb-root"></div> <script async defer crossorigin="anonymous" src="https://connect.facebook.net/en_GB/sdk.js#xfbml=1&version=v15.0" nonce="8IZbfAk3"></script> … <!-- ثم ضع الكود التالي في المكان المناسب لك والذي يمثل زر المشاركة وغير إسمه الحالي الى أي إسم تريد وكذلك تضع رابط الفيس بوك للصفحة او الحساب الذي يراد مشاركته وفي المثال لدينا الرابط هو myLink.com حيث تحتاج تغييره في كل من data-href href مع الحفاظ على نفس الهيكلية --> <div class="fb-share-button" data-href="https://Mylink.com" data-layout="button" data-size="small"><a target="_blank" href="https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2FMylink.com%2F&src=sdkpreparse" class="fb-xfbml-parse-ignore">مشاركة</a></div> … بالنسبة للإيميل تستطيع إستخدام الكود التالي بالخاصية mailto ونترك لك عمل styling للزر من خلال css ... <a href="mailto:ضع أيميلك هنا"> Email </a> ...
-
بدايةً من المهم جداً تنسيق الكود حتى يصبح قابلاً للقراءة لك وللجميع. لاحظ أنك تحاول إستعمال نوعين من navigators وبالتأكيد كل واحد منهم له الـ rules الخاصة به. يمكنك وضع drawer داخل navigationContainer لكن بدون stack.navigator , stack.screen وكما تلاحظ في رسالة الخطأ باللون الأحمر ولحل المشكلة يمكنك النظر في المثال أدناه لأخذ الفكرة عن الحل ... const Drawer = createDrawerNavigator(); export default function App() { return ( <NavigationContainer> <Drawer.Navigator initialRouteName="Home"> <Drawer.Screen name="Home" component={HomeScreen} /> ... </Drawer.Navigator> </NavigationContainer> ) } ...
-
تنتهي مهمتنا بحل المشكلة الأصلية وهي تثبيت الحزم المذكورة بنجاح. إذا تواجه مشاكل أخرى مثل مشاكل في إستخدام الأدوات قبل إستيرادها حاول حلها بنفسك وإذا لم تفلح يمكنك فتح سؤال جديد.
- 13 اجابة
-
- 1
-
إحذف مجلد node_modules من المشروع ونفذ npm install من جديد فقط ولكن بعد أن تستبدل محتوى package.json بالنسخة المعدلة التالية. ملاحظة تم تجربة المشروع على android و iphone وهو يعمل لكن لديك أخطاء في الأكواد تحتاج إصلاحها بنفسك. { "name": "thethinking_of_the_rich", "version": "1.0.0", "main": "node_modules/expo/AppEntry.js", "scripts": { "start": "expo start", "android": "expo start --android", "ios": "expo start --ios", "web": "expo start --web" }, "dependencies": { "@react-native-async-storage/async-storage": "^1.17.10", "@react-navigation/drawer": "^6.5.0", "@react-navigation/native": "^6.0.13", "@react-navigation/native-stack": "^6.9.1", "expo": "~46.0.16", "expo-dev-client": "~1.3.1", "expo-linear-gradient": "~11.4.0", "expo-status-bar": "~1.4.0", "react": "18.0.0", "react-native": "0.69.6", "react-native-gesture-handler": "~2.5.0", "react-native-radio-buttons-group": "^2.2.11", "react-native-reanimated": "~2.9.1", "react-native-safe-area-context": "4.3.1", "react-native-screens": "~3.15.0" }, "devDependencies": { "@babel/core": "^7.12.9" }, "private": true }
-
شارك ملف المشروع مضغوطاً بدون node_modules
-
لطفاً راجع الرد السابق. لن تكون هناك مشكلة في حذف جميع المكتبات وإعادة تثبيتها
- 13 اجابة
-
- 1
-
أسهل حل تحذف مجلد node_modules من المشروع وبعدها مباشرة تنفذ أمر التثبيت الخاص ب expo. وسيكون من الرائع إذا كنت تعرف أسماء الحزم غير المناسبة التي ثبتها وتزيلها من package.json قبل أن تبدأ بالتثبيت وإلا فلا ضير من المحاولة بدون هذه الخطوة.
-
إذا أنشأت مشروعك بواسطة expo فإستعمل الأمر المتعلق به ...npx expo
-
في ملف babel.config.js المسار الرئيسي للمشروع قم بإضافة ال plugin المطلوبة لعمل react-native-reanimated وكما يلي. بعدها يفترض أن تحل المشكلة لديك. module.exports = function (api) { api.cache(true); return { presets: ["babel-preset-expo"], plugins: [ "react-native-reanimated/plugin", // الإضافة المطلوبة ], }; };
-
الكود المرفق يتضح منه وجود خطأ في الـ logic حيث أولاً أنك تعطين رسالة نجاح تسجيل الدخول إذا كان أي من إسم المستخدم أو كلمة المرور صحيحاً ولكن منطقياً يجب أن يكون كل من القيمتين صحيحاً حتى تتم المصادقة. أيضاً باقي شروط التحقق ليست مبنية بشكل سليم يتم فيه التدرج المناسب في التحقق من المدخلات. ربما تردين إلقاء نظرة وتجربة التعديل أدناه ... if ($user == "Steve" ){ if($password == "student"){ echo "You logged IN"; } else { echo "you password is INcorrect!, Try again"; } } else if($user == "Jane") { if($password == "doe"){ echo "You logged IN"; } else { echo "you password is INcorrect!, Try again"; } } else { echo "you username is INcorrect!, Try again"; } ...
-
واضح جداً الخطأ أنك ترسل إسم مستخدم او كلمة مرور خاطئة. أنتبه الى النقاط التالية: إذا كنت تكتب إسم المستخدم وكلمة المرور داخل <..> فلن يعمل الأمر والصواب كتابتها كما في وضحنا لك في رد سابق إذا كنت تستعمل إسم المستخدم(وكلمة المرور) الخاص بالحساب لتسجيل الدخول الى حساب أطلس فهي لن تعمل بالتأكيد ولكن إستعمل إسم المستخدم وكلمة المرور الخاصة بقاعدة البيانات التي تريد الإتصال بها على حسابك.
-
المشكلة هو أنك لا تقوم بالإتصال بقاعدة البيانات وبالتالي لا يمكنك إنشاء مستخدم جديد. في الملف .env لايوجد userame أو password حيث يبدو لي أنك نسخت template دون أن تعدل عليها وبالتالي هنا المشكلة. أيضا كود الإتصال بقاعدة البيانات في الملف index.js يجب أن تضعه داخل بلوك try catch حتى تتمكن من الوصول الى خطأ الإتصال بوضوح وكذلك لمنع حصول crash للخادم server. -- .env MONGO_URL = mongodb+srv://<username>:<password>@clustername.sbewku1.mongodb.net/?retryWrites=true&w=majority // تكتب إسم المستخدم الحقيقي وكلمة المرور وعلى سبيل المثال هكذا<username>:<password> مكان MONGO_URL = mongodb+srv://my_username:my_password@clustername.sbewku1.mongodb.net/?retryWrites=true&w=majority // أيضا عدل كود الإتصال بقاعدة البيانات كما وضحنا لك وكما يلي -- index.js try { mongoose.connect( process.env.MONGO_URL, { useNewUrlParser: true, useUnifiedTopology: true }, (err, instance)=> err ? console.log('connection error:', err) :console.log("connected to database ", instance.connections[0].name) ) } catch (error) { console.log("mongoose connection error:", error) }
-
الخطأ الظاهر لديك معناه أن mongoose يحاول الولوج الى قاعدة البيانات وعمل insert قبل إجراء الإتصال بها. لم تشاركنا الكود الخاص بالإتصال بقاعدة البيانات لكن يظهر في terminal أنها متصلة.. حاول حذف ملف node_modules ومن ثم إعد بناء المشروع npm install أو yarn وأعد المحاولة فهل يستمر الخطأ؟ إذا أستمر يرجى مشاركة ملف المشروع مضغوطاً بدونnode_modules حتى يتسنى لنا معاينة المشكلة
-
حاول أن تبحث في google عن العنوان التالي ستجد الكثير من الخيارات التي تساعدك على اكتشاف وحل المشكلة Cross-Browser Testing Tools
- 4 اجابة
-
- 1
-
بخصوص إختلاف التجاوب على المتصفحات فيجب الأخذ بنظر الإعتبار عند كتابة css أن تكون أكوادك تدعم كافة المتصفحات الشائعة popular بما معناه تستطيع تحديد المشكلة من خلال معرفة نوع المتصفح الذي ظهرت به المشكلة وإصداره وكذلك النظام التشغيلي حيث أن بعض الخصائص لنفس نوع المتصفح قد تعمل على وندوز ولكن ليس على ios على سبيل المثال. بخصوص أخطاء جافاسكربت نحتاج صورة الشاشة للأخطاء الذي ظهرت في console حتى نساعدك في حل المشكلة.
- 4 اجابة
-
- 1
-
لازال لديك مشكلة في stringify حيث أن القيمة التي تريد معالجتها تحتوي undefined مما يتسبب ب syntax error. قبل أي شيء قم بعمل console.log للبيانات وشاركنا صورتها.
-
الخطأ في الصورة يشير الى وجود cyclic structure ومعناه وجود object يشير الى نفسه وهو أمر لا يدعمه json. والخطأ يتسبب به السطر 101. ربما تحتاج تعمل console.log للبيانات القادمة من formData أو تستعمل debugger ومن خلال developer tools في console تستطيع معرفة القيم قبل أن تحاول عمل stringify لها. تحتاح معالجتها قبل JSON.stringify
-
يرجى توضيح مشكلتك حتى نساعدك في حلها.