typescript - 类型 'object' 必须有一个返回 iterator.ts(2488) 的 '[Symbol.iterator]()' 方法
问题描述
我的 sql 查询结果如下:
{
"statusCode": 200,
"success": true,
"messages": [
null
],
"data": {
"vistoria": {
"vistoria": {
"id": 1,
"usuario_id": 1,
"empresa_id": 4,
"vistoria_tipo_id": 1,
"veiculo_id": 3,
"cliente_id": 5,
"data": "17/07/2020 11:14"
},
"questionario": {
"id": 1,
"usuario_id": 1,
"empresa_id": 4,
"vistoria_id": 1,
"odometro": 123124,
"pertences_retirados": "S",
"nivel_combustivel": "4",
"campo_generico": {
"gen_antena": "OK",
"gen_calota": "NOK",
"gen_capota_maritima": "Q",
"gen_cartao_code": "NA"
},
"campo_pneu_cond": {
"pcd_pneu_de_cond": "NOVO",
"pcd_pneu_dd_cond": "BOM",
"pcd_pneu_te_cond": "BOM",
"pcd_pneu_td_cond": "NOVO"
},
"campo_pneu_marca": {
"pmc_pneu_de_marca_id": 27,
"pmc_pneu_dd_marca_id": 37,
"pmc_pneu_te_marca_id": 9999,
"pmc_pneu_td_marca_id": 9999
},
"campo_pneu_outros": {
"pot_pneu_te_marca_outros": "asdasdasd",
"pot_pneu_td_marca_outros": "asdasdasdddd"
}
},
"vistoria_tipo": "ENTREGA",
"veiculo_placa": "ASD1234",
"veiculo_modelo": "Palio",
"cliente_cpf": 12312312312,
"cliente_nome": "Paulo"
},
"num_imagens": 3,
"imagens": [
{
"id": 1,
"usuario_id": 1,
"empresa_id": 4,
"vistoria_id": 1,
"imagemRef": "assinaturaVistoriador",
"imagemUrl": "http://192.168.15.2/vistoria/preview/2020/07/4/1/png/rsz_0b967ef2e9bf2e603c72859c9fcf7d6d"
},
{
"id": 2,
"usuario_id": 1,
"empresa_id": 4,
"vistoria_id": 1,
"imagemRef": "Frente",
"imagemUrl": "http://192.168.15.2/vistoria/preview/2020/07/4/1/jpeg/rsz_ddb36b2719c88118cc5ee0d16c868534"
},
{
"id": 3,
"usuario_id": 1,
"empresa_id": 4,
"vistoria_id": 1,
"imagemRef": "assinaturaCliente",
"imagemUrl": "http://192.168.15.2/vistoria/preview/2020/07/4/1/png/rsz_95d414ee5fae24371a506f823196af86"
}
]
}
}
我写了一个这样的界面:
export interface VistoriaInt {
success: boolean;
messages?: [''];
data?: {
vistoria: {
vistoria: {
id: number;
usuario_id: number;
empresa_id: number;
vistoria_tipo_id: number;
veiculo_id: number;
cliente_id: number;
data: Date;
};
questionario: {
id: number;
usuario_id: number;
empresa_id: number;
vistoria_id: number;
odometro: number;
pertences_retirados: string;
nivel_combustivel: string;
campo_generico: object;
campo_pneu_cond: object;
campo_pneu_marca: object;
campo_pneu_outros: object;
};
vistoria_tipo: string;
veiculo_placa: string;
veiculo_modelo: string;
cliente_cpf: number;
cliente_nome: string;
};
num_imagens: number;
imagens: [
{
id: number;
usuario_id: number;
empresa_id: number;
vistoria_id: number;
imagemRef: string;
imagemUrl: string;
}
]
};
}
但是当我尝试在“campo_generico”上做一个 lop 时,我遇到了这个错误:类型“object”必须有一个返回 iterator.ts(2488) 的“Symbol.iterator”方法
我该如何解决这个问题,我可以使用接口从我的 sql 数据库中检索这些数据吗?
解决方案
'campo_generico' 是一个对象,而不是一个数组。因此,您需要在该属性上使用 Object.values(),然后在结果数组上使用该循环 https://developer.mozilla.org/uk/docs/Web/JavaScript/Reference/Global_Objects/Object/values
或者您可以尝试“for...in”循环https://developer.mozilla.org/uk/docs/Web/JavaScript/Reference/Statements/for...in
推荐阅读
- python - 单调性概念是什么意思?
- javascript - 重新加载 ReactLeaflet 地图的问题
- jpa - @PrePersist 插入查询
- php - 加载 .docx 并使用 PHP 将其解析为数组
- selenium - 如何在 Selenium 库/机器人框架中发送特殊密钥?
- python - 将数据串行写入文本文件
- reporting-services - 自动报告从一个切换到另一个
- c# - .Net Core (2.1) 用户会话设置
- wordpress - WordPress 插件 – 无需 PHP 即可保存额外的图像元数据?
- python - 如何使用熊猫中另一个数据框的值更新一个数据框