Adam Ebrahim نشر 25 فبراير 2021 أرسل تقرير نشر 25 فبراير 2021 لدي مشكلة في إضافة عنصر Script داخل كود react ولكن عند إضافة العنصر لا يعمل وكأني لم أقم بإضافته من الأساس ولا توجد أي أخطاء ظاهرة لدي. لقد قمت بتجربة الكود التالي: render() { return ( <script src="https://example.com/JsFile.js"></script> ); } 1 اقتباس
1 سامح أشرف نشر 25 فبراير 2021 أرسل تقرير نشر 25 فبراير 2021 لا يمكن إستخدام عناصر script في أي حالة من الحالات الآتية: إستخدام رابط ملف جافاسكريبت خارجي إستخدام الكائن dangerouslySetInnerHTML والسبب في ذلك هو أن الكائن React DOM (المسئول عن عرض مكونات React في الصفحة) يستخدم التابع createElement لتحويل كود JSX إلى عناصر HTML عادية، بعد ذلك يتم إستخدام التابع innerHTML لعرض هذه العناصر في الصفحة، وهذا التابع الآخير لا يقوم بتنفيذ عناصر Script لأسباب أمنية، وهذا هو السبب في أن عناصر script لن تعمل في مكونات react. لكن الأمر أصبح أسهل في النسخ الحديثة من react وأصبح من الممكن إستخدام useEffect لتحميل وتنفيذ أكواد جافاسكريبت الخارجية، وهنا مثال: import { useEffect } from 'react'; const useScript = url => { useEffect(() => { const script = document.createElement('script'); script.src = url; script.async = true; document.body.appendChild(script); return () => { document.body.removeChild(script); } }, [url]); }; export default useScript; ويمكن إستخدام الـ Hook السابق بالطريقة التالية: import useScript from 'hooks/useScript'; const MyComponent = props => { useScript('https://example.com/JsFile.js'); // باقي أكواد المكون هنا } بالطريقة السابقة يمكن تحميل وإستدعاء أكواد جافاسكريبت (مثل ملفات jQuery أو Stripe أو Google Analytics إلخ). 1 اقتباس
السؤال
Adam Ebrahim
لدي مشكلة في إضافة عنصر Script داخل كود react ولكن عند إضافة العنصر لا يعمل وكأني لم أقم بإضافته من الأساس ولا توجد أي أخطاء ظاهرة لدي. لقد قمت بتجربة الكود التالي:
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.