【问题标题】:array of object is not rendering in react js对象数组未在反应 js 中呈现
【发布时间】:2021-12-21 03:00:01
【问题描述】:

我正在尝试使用 map 方法渲染对象数组,但它给出了错误消息

list.map 不是函数

如何渲染这个?

我要渲染的数组对象是:

let list= [
{
    "id": "8xI09EfZGldA3wMEdwUW",
    "users": ["dstha221@gmail.com", "dstha221@gmail.com"],
    "timestamp": {
        "seconds": 1639825713,
        "nanoseconds": 687000000
    }
},
{
    "id": "PiDJjjeH0eubfLz2WIe5",
    "timestamp": {
        "seconds": 1639825709,
        "nanoseconds": 341000000
    },
    "users": ["rabina@gmail.com", "dstha221@gmail.com"]
},
{
    "id": "ayAFmLpIGdUHYe8fiVvb",
    "timestamp": {
        "seconds": 1639825712,
        "nanoseconds": 291000000
    },
    "users": ["jeevan@gmail.com", "dstha221@gmail.com"]
}
];




 list.map((user)=>{
    console.log(user.id);
    })

【问题讨论】:

    标签: javascript reactjs arrayobject


    【解决方案1】:

    因为列表:[{data}] 不是数组。 像这样修复你的代码。

    const list = [{data}, {data}, {data}, ...]
    ..//
    {list.map(data => <Component data={data}/>);}
    

    【讨论】:

      【解决方案2】:

      虽然问题不清楚,但我会为您尝试映射的数据假设两种情况。

      案例一

      假设您的数据列表的格式为 ..

      const list = [{"id":"8xI09EfZGldA3wMEdwUW","users":["dstha221@gmail.com","dstha221@gmail.com"],"timestamp":{"seconds":1639825713,"nanoseconds":687000000}},{"id":"PiDJjjeH0eubfLz2WIe5","timestamp":{"seconds":1639825709,"nanoseconds":341000000},"users":["rabina@gmail.com","dstha221@gmail.com"]},{"id":"ayAFmLpIGdUHYe8fiVvb","timestamp":{"seconds":1639825712,"nanoseconds":291000000},"users":["jeevan@gmail.com","dstha221@gmail.com"]}]
      

      然后您可以在您的退货声明中显示这样的 id ....

      list.map((item)=> <p>{item.id}</p>)
      

      案例二

      假设您的列表是...形式的对象的属性。

      const myObj = {
            list: [{"id":"8xI09EfZGldA3wMEdwUW","users":["dstha221@gmail.com","dstha221@gmail.com"],"timestamp":{"seconds":1639825713,"nanoseconds":687000000}},{"id":"PiDJjjeH0eubfLz2WIe5","timestamp":{"seconds":1639825709,"nanoseconds":341000000},"users":["rabina@gmail.com","dstha221@gmail.com"]},{"id":"ayAFmLpIGdUHYe8fiVvb","timestamp":{"seconds":1639825712,"nanoseconds":291000000},"users":["jeevan@gmail.com","dstha221@gmail.com"]}]
      

      然后你可以像这样映射对象......

      myObj.list.map((item)=> <p>{item.id}</p>)
        }
      

      【讨论】:

      • 不工作。同样的错误信息...
      • 如果您的列表是从外部资源获取的,或者您设置了列表变量,那么您应该检查列表是否不是数组,请提供您的反应组件的完整代码 sn-p
      猜你喜欢
      • 1970-01-01
      • 2021-03-18
      • 2017-05-12
      • 1970-01-01
      • 2021-10-17
      • 1970-01-01
      • 1970-01-01
      • 2020-05-24
      • 2018-05-23
      相关资源
      最近更新 更多