b***@163.com
b***@163.com
  • 发布:2019-04-20 13:34
  • 更新:2022-11-30 13:21
  • 阅读:1814

【报Bug】模板 v-for 空数组,子元素 {{表达示}} 会报错

分类:HBuilderX

详细问题描述

(DCloud产品不会有明显的bug,所以你遇到的问题大都是在特定环境下才能重现的问题,请仔细描述你的环境和重现方式,否则DCloud很难排查解决你的问题)

[内容]

重现步骤

[步骤]

<view v-for="(item, idx) in data" :key="idx">  
  <text>{{item.value.split(',')[0]}}</text>  
</view>

[结果]
控制台报错
VM4838:1 [Vue warn]: Error in render: "TypeError: Cannot read property 'value' of undefined
[期望]
1.82 没有此问题,升级到1.9以后 出现
空数组时 不要遍历 子元素
另外,在父元素加v-if判断data.length>0,也报错
[如果语言难以表述清晰,拍一个视频或截图,有图有真相]

IDE运行环境说明

[HBuilder 或 HBuilderX。如果你用其他工具开发uni-app,也需要在此说明]
HBuilderX
[IDE版本号]
1.9.2.20190417
[windows版本号]
windows 10
[mac版本号]

uni-app运行环境说明

[运行端是h5或app或某个小程序?]
小程序
[运行端版本号]
微信开发者工具1.02.1904090
[项目是cli创建的还是HBuilderX创建的?如果是cli创建的,请更新到最新版cli再试]
HBuilderX
[编译模式是老模板模式还是新的自定义组件模式?]
新的自定义组件模式

App运行环境说明

[Android版本号]

[iOS版本号]

[手机型号]

[模拟器型号]
微信开发者工具1.02.1904090

附件

[IDE问题请提供HBuilderX运行日志。菜单帮助-查看运行日志,点右键打开文件所在目录,将log文件压缩成zip包上传]

[App问题请提供可重现问题的代码片段,你补充的细一点,问题就解决的快一点]

[App安装包或H5地址]

[可重现代码片段]

<template>  
  <view>  
    <view v-for="(item, idx) in data" :key="idx">  
      <text>{{item.value.split(',')[0]}}</text>  
    </view>  
  </view>  
</template>  
<script>  
export default {  
  data() {  
    return {  
      data: []  
    }  
  }  
}  
</script>

联系方式

[QQ]

2019-04-20 13:34 负责人:无 分享
已邀请:
程咬金3斧头

程咬金3斧头

新版自定义组件模式,好像是有这个问题,用了v-if判断后再进行循环,一进页面内部代码还是会执行会报错。 但是等数据渲染出来后,还是可以正常显示。

  • b***@163.com (作者)

    不行,是可以取到数据,但是不会渲染

    关键是data是空数组,为何还要遍历模板

    不过只要没有表达式,就不会报错。这个很厉害!

    暂时使用过滤器解决这个问题,对!过滤器也不报错

    2019-04-21 08:26

d***@dufan.cool

d***@dufan.cool

这个问题还存在

该问题目前已经被锁定, 无法添加新回复