【问题标题】:React Typescript: api data to array mapReact Typescript:api数据到数组映射
【发布时间】:2021-09-24 21:09:20
【问题描述】:

我有这个来自 api 的数组数据,我想使用 map 函数在 react tsx 文件中制作它

{
   "data":{
      "cart":{
         "1":{
            "product_id":1,
            "name":"Product 1",
            "quantity":1,
            "price":"1.00"
         },
         "2":{
            "product_id":2,
            "name":"Product 2",
            "quantity":1,
            "price":"1.00"
         }
      }
   }
}

React Typescript 代码(但不工作):

(data.cart.map((item:any, key:any) => (
   <p>{item.product_id}</p>
   <p>{item.name}</p>
   <p>{item.quantity}</p>
   <p>{item.price}</p>
)))

我想修复 react tsx 代码

【问题讨论】:

  • 你的错误信息是什么?
  • 控制台日志:TypeError: e.map is not a function

标签: arrays reactjs typescript react-tsx


【解决方案1】:

数据嵌套在购物车内的对象内。您可以使用Object.Keys 访问键,例如 1、2、3 ...

Object.keys(data.cart[0]).map((key) => {
let item = data.cart[0][key];
return (
<React.Fragment key={key}>
   <p>{item.product_id}</p>
   <p>{item.name}</p>
   <p>{item.quantity}</p>
   <p>{item.price}</p>
</React.Fragment>
)
});

基于修改后的问题,因为您删除了数组:

Object.keys(data.cart).map((key) => {
let item = data.cart[key];
return (
<React.Fragment key={key}>
   <p>{item.product_id}</p>
   <p>{item.name}</p>
   <p>{item.quantity}</p>
   <p>{item.price}</p>
</React.Fragment>
)
});

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2021-10-10
  • 1970-01-01
  • 2019-08-14
  • 2021-01-16
  • 1970-01-01
  • 2018-06-16
  • 1970-01-01
  • 2020-09-25
相关资源
最近更新 更多