从数据库中获取并通过 db 列中的数组进行映射

Posted

技术标签:

【中文标题】从数据库中获取并通过 db 列中的数组进行映射【英文标题】:Fetching from database and maping through array in db column 【发布时间】:2021-02-16 15:55:01 【问题描述】:

对不起,如果标题有点或不好。

但问题是我从我的数据库中获取并使用地图来显示每个产品,并且我在渲染的产品中有一个选择框,我试图从数据库中的数组进行映射。

我是这样取的:

fetch('/api/products')
    .then(res => res.json())
    .then(allProducts => 
        this.setState( allProducts );
);

我的地图是这样的:


this.state.allProducts.map(allProducts =>
                            
  <div className="products" key=allProducts.produkt_id>
                                
  <select name="format">
    <option value="choose_format">choose format</option>
                                        
  </select>

</div>
)

在我的数据库中,数组像这样存储在列中:

["car":"audi","car":"bmw"]

我如何将不同的汽车绘制为选项,或者我做错了什么,我可以以更好的方式存储它吗?

【问题讨论】:

【参考方案1】:
 produkt_id: "123", car: "bwm" , color: ["color":"audi","color":"bmw"] 

您的渲染将是:

return this.state.allProducts.map((product) => (
    <div className="products" key=product.produkt_id>
      <select name="format">
        product.color.map((colorOption) => (
          <option value=colorOption.color>colorOption.color</option>
        ))
      </select>
    </div>
  ));

【讨论】:

produkt_id: "123", car: "bwm" , color: ["color":"red","color":"white"] 可能是数组中的颜色我可以稍后删除,所以它不必说两次颜色,但这是一个更好的例子,我现在如何拥有它,我想要显示汽车每种颜色的选项,我该怎么做? 我正在尝试您的解决方案,但我收到“TypeError: product.color.map is not a function”,你知道为什么吗? 告诉你 color 不是一个数组,所以它没有.map 函数。使用 console.log 进行调试。 非常感谢,使用 JSON.parse(),而不是 product.color.map 我不得不使用 JSON.parse(product.color).map

以上是关于从数据库中获取并通过 db 列中的数组进行映射的主要内容,如果未能解决你的问题,请参考以下文章

将一个值映射到JPA中的多个列

从 db 获取数据并通过 PHP 中的 Mailchimp 发送邮件

从db获取数据并通过PHP中的Mailchimp发送邮件

从Mongo DB嵌套数组中获取不同的值并输出到单个数组

如何将新项目附加到 PostgreSQL 中的数组类型列中

BASH - 如何从 CSV 文件中的列中提取数据并将其放入数组中?