نوفيل
الرئيسيةالكورساتالتحديات⚔️ المبارزاتالمقالاتالأدواتتغريداتالمجتمع
دخولابدأ مجاناً
الرئيسيةالكورساتالتحديات⚔️ المبارزاتالمقالاتالأدواتتغريداتالمجتمع
نوفيل

منصة تعليم البرمجة الأولى بالعربي. تعلم من الصفر حتى الاحتراف مع كورسات احترافية وتحديات ذكاء اصطناعي.

المنصة

  • الكورسات
  • التحديات
  • المقالات
  • الأدوات

الحساب

  • إنشاء حساب
  • تسجيل الدخول
  • لوحة التحكم
  • الملف الشخصي

روابط

  • سياسة الخصوصية
  • شروط الاستخدام
  • عن نوفيل
  • تواصل معنا

© 2026 نوفيل. جميع الحقوق محفوظة.

صُنع بـ في مصر

نوفيل
الرئيسيةالكورساتالتحديات⚔️ المبارزاتالمقالاتالأدواتتغريداتالمجتمع
دخولابدأ مجاناً
الرئيسيةالكورساتالتحديات⚔️ المبارزاتالمقالاتالأدواتتغريداتالمجتمع
العودة للتغريدات
مشكلةتم الحل

مشكلة في جلب البيانات: TypeError: Cannot read property 'map' of undefined في React

K
kamel
·١٦ يوليو ٢٠٢٦·2 مشاهدة
يا جماعة أنا شغال على صفحة بتعرض قائمة المنتجات في مشروع React، وجايب البيانات من API خارجي باستعمال axios. المطلوب: أول ما الصفحة تحمل، الكود يروح يطلب البيانات من السيرفر، ولما ترجع يتسجلوا في الـ State وبعدها بنعرضهم باستعمال دالة .map(). المشكلة اللي مقابلاني: أول ما بفتح الصفحة، الابلكيشن بيضرب وبيعلم أحمر في الـ Console وبيطلعلي الأيرور ده: TypeError: Cannot read properties of undefined (reading 'map') at ProductList (ProductList.js:18:23) الغريب إني لما بعمل console.log للبيانات وهي راجعة بلاقيها جاية تمام، بس الصفحة بتضرب قبل ما البيانات تظهر! مش فاهم ليه مش حاسس بالـ Array مع إن الكود شكلة صح جداً.
JavaScript
import React, { useState, useEffect } from 'react';
import axios from 'axios';

function ProductList() {
    // السطر المشتبه فيه: القيمة الابتدائية مش معرفة كـ Array
    const [products, setProducts] = useState(); 

    useEffect(() => {
        axios.get('https://api.example.com/products')
            .then(response => {
                setProducts(response.data);
            })
            .catch(error => {
                console.error("حصلت مشكلة في الجلب:", error);
            });
    }, []);

    return (
        <div className="product-container">
            <h2>قائمة المنتجات</h2>
            <ul>
                {/* هنا الابلكيشن بيضرب لأن products بـ undefined في أول Render */}
                {products.map(item => (
                    <li key={item.id}>{item.name}</li>
                ))}
            </ul>
        </div>
    );
}

export default ProductList;
وظايف-reactمشاكل-فرونت-اندكود-رياكتخطأ-map-undefinedمشاكل-javascriptأخطاء-react-jsحل-مشاكل-الفرونتبرمجة-front-end

التعليقات (1)

الحل المعتمد
abdelrahman
abdelrahmanمنذ 90 يوم
المشكلة هنا إن دالة useState() عندك قيمتها المبدئية undefined لأنك سايب القوسين فاضيين. وفي React، المكون بيعمل Render لليوزر قبل ما طلب الـ API يرجع بالبيانات. فلما بيجي ينفذ products.map() في أول رسمة للصفحة، بتكون products لسه undefined والـ JavaScript مفيهاش دالة اسمها .map() للـ undefined فتضرب صفحة. الحل الصحيح والنهائي: كل اللي عليك تعمله إنك تعيّن قيمة مبدئية لـ products تكون مصفوفة فاضية [] وأنت بتعرف الـ State، عشان لما المكون يرسم نفسه أول مرة يجد مصفوفة فاضية ما تسببش أيرور، ولما البيانات ترجع من السيرفر الـ State هتتحدث والمنتجات تظهر عادي: // التعديل في السطر ده بس: خلي القيمة المبدئية [] بدل ما تسيبها فاضية const [products, setProducts] = useState([]);
JavaScript
import React, { useState, useEffect } from 'react';
import axios from 'axios';

function ProductList() {
    // تم ضبط القيمة المبدئية كـ Array فاضية
    const [products, setProducts] = useState([]); 

    useEffect(() => {
        axios.get('https://api.example.com/products')
            .then(response => {
                setProducts(response.data);
            })
            .catch(error => {
                console.error("حصلت مشكلة في الجلب:", error);
            });
    }, []);

    return (
        <div className="product-container">
            <h2>قائمة المنتجات</h2>
            <ul>
                {products.map(item => (
                    <li key={item.id}>{item.name}</li>
                ))}
            </ul>
        </div>
    );
}

export default ProductList;

سجّل دخولك لإضافة تعليق

تسجيل الدخول
نوفيل

منصة تعليم البرمجة الأولى بالعربي. تعلم من الصفر حتى الاحتراف مع كورسات احترافية وتحديات ذكاء اصطناعي.

المنصة

  • الكورسات
  • التحديات
  • المقالات
  • الأدوات

الحساب

  • إنشاء حساب
  • تسجيل الدخول
  • لوحة التحكم
  • الملف الشخصي

روابط

  • سياسة الخصوصية
  • شروط الاستخدام
  • عن نوفيل
  • تواصل معنا

© 2026 نوفيل. جميع الحقوق محفوظة.

صُنع بـ في مصر