渲染产品按类别分组

丹尼尔(Daniele)

晚上好,读者们!

我正在使用React和Redux开发一个简单的购物车单页应用程序!

就是这种情况:

listOfCategories: ["Basic", "Hardware"]

listOfItems : [
   {
      fields: {
           category: "Basic",
           name: "Starter",
           ...
      },
      ...
   },
   {
      fields: {
           category: "Basic",
           name: "Entertainment",
           ...
      },
      ...
   },
   {
      fields: {
           category: "Hardware",
           name: "STB",
           ...
      },
      ...
   }
]

在我的组件的render方法内部,有:

render() {
    return (
      <div>
        <div>
          Catalog
            {this.props.listOfItems.map(item => (
                <Product
                  id={item.fields.productexternalid}
                  name={item.fields.productname}
                  category={item.fields.SKYDE_Product_Category__c}
                  clicked={() => this.addToCart(item)}
                  costOneTime={item.fields.baseonetimefee}
                  costRecurring={item.fields.baserecurringcharge}
                  eligible={item.fields.eligible}
                  visible={item.fields.visible}
                ></Product>
              ))}
        </div>
     </div>
    );
}

结果是这样的:

在此处输入图片说明

我只想渲染一个手风琴,其中填充了类别名称,手风琴下按类别分组的项目:

基本-> item.category

开始-> item.name

娱乐-> item.name


硬件-> item.category

机顶盒-> item.name

在此处输入图片说明


.map()和.filter()函数将很有用,但是我真的不知道如何处理这种情况。

任何帮助将不胜感激!

达哥

map()filter()在这种情况下肯定是有用的。

render() {
  // in case "listOfCategories" is not predefined
  let listOfCategories = listOfItems.map(item => item.fields.category)
  // sort and remove duplicates
  listOfCategories = listOfCategories.sort().filter((v, i) => listOfCategories.indexOf(v) === i);

  return (
    <div>
      {listOfCategories.map(cat => (
        // You probably had this `Category` component around
        <Category key={cat} name={cat} {...catProps}>
          {listOfItems.filter(item => item.fields.category === cat).map(item => (
            <Product
              key={item.fields.id}
              id={item.fields.id}
              name={item.fields.name}
              {...itemProps}
            />
          ))}
        </Category>
      ))}
    </div>
  );
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

要从多个类别中按类别获取产品在mysql中的分组

来自分类Dev

按类别分组列表

来自分类Dev

按类别分组计数

来自分类Dev

如何在LinQ的列表视图中按类别对产品分组?

来自分类Dev

Linq to Sql按类别分组

来自分类Dev

DataList按类别分组的项目

来自分类Dev

按 ID 分组类别 python

来自分类Dev

按类别ID显示magento产品

来自分类Dev

在WooCommerce中按产品获取类别ID

来自分类Dev

在Django中按类别过滤产品

来自分类Dev

如何按特定类别显示我的产品

来自分类Dev

雄辩地按类别列出用户的产品

来自分类Dev

短代码以按类别显示产品woocommerce

来自分类Dev

Linq按产品分类,但显示类别

来自分类Dev

在Django中按类别渲染对象

来自分类Dev

按具有最大价值的类别分组

来自分类Dev

熊猫-按ID分组,分配类别

来自分类Dev

Laravel总交易金额按类别分组

来自分类Dev

按类别对WordPress帖子进行分组

来自分类Dev

随时间按相似类别分组

来自分类Dev

按类别分组并添加额外的列

来自分类Dev

WooCommerce-按产品分组下载

来自分类Dev

按给定列分组的累计产品

来自分类Dev

按产品和时间分组,并包含零

来自分类Dev

首先按类别分组,然后按周或月分组

来自分类Dev

熊猫数据框,按日期/月份分组,按类别计数

来自分类Dev

在Magento中按多个类别过滤产品

来自分类Dev

在Vue模板中按类别组浏览产品项

来自分类Dev

在Woocommerce REST API中按类别获取产品