<detail-item-list v-if="formData.size" term="备件尺寸" >{{ getSize(0) }}mm(长) * {{ getSize(1) }}mm(宽) * {{ getSize(2) }}mm(高)</detail-item-list > formData: { size: '',} methods: { getSize(index) { let size = [] try { console.log(this.formData.size) return if(JSON.parse(this.formData.size).includes(",")){ size = []; }else{ size = JSON.parse(this.formData.size) } } catch (e) { console.error('size try:', e) } return size[index] ? size[index] : 0 },这样写getSize为啥没展示数据
时间: 2024-04-12 19:29:30 浏览: 34
根据你提供的代码,我注意到在 getSize 方法中,你使用了 try-catch 块来解析 `this.formData.size`。然后,在 try 块中,你检查了 `this.formData.size` 是否包含逗号,如果包含逗号,则将 `size` 数组重置为空数组,否则将 `size` 数组设置为解析后的值。
但是,在你的代码中,你直接在 return 语句之前使用了 return,这意味着在 try 块中的第一行 `console.log(this.formData.size)` 被执行后,就会立即返回,并且后面的代码不会被执行。
为了解决这个问题,你可以将 return 语句移动到 try 块的最后,这样在解析出错时会返回正确的值。修改后的代码如下所示:
```javascript
getSize(index) {
let size = []
try {
console.log(this.formData.size)
if (JSON.parse(this.formData.size).includes(",")) {
size = [];
} else {
size = JSON.parse(this.formData.size)
}
} catch (e) {
console.error('size try:', e)
}
return size[index] ? size[index] : 0
}
```
通过这样的修改,getSize 方法将会执行完整的逻辑,并返回正确的值。请记得在修改代码之前备份原始代码,以防止意外修改导致其他问题。