h***@163.com
h***@163.com
  • 发布:2023-04-23 17:32
  • 更新:2024-02-18 15:39
  • 阅读:359

【报Bug】Vue2 项目中访问 length 属性报错的Bug

分类:uni-app

产品分类: uniapp/小程序/微信

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: win11,win10

HBuilderX类型: 正式

HBuilderX版本号: 3.7.9

第三方开发者工具版本号: 1.06.2303220

基础库版本号: 2.31.0

项目创建方式: HBuilderX

操作步骤:
<view class="content">  
        <view>报错写法</view>  
        <block v-if="obj.a.length">  
            <view v-for="(item, index) of obj.a" :key="index">  
                <text>{{ item.name }}</text>  
                :  
                <text>{{ item.value }}</text>  
            </view>  
        </block>  
        <!-- <view>不报错写法</view>  
        <block v-if="obj.a && obj.a.length">  
            <view v-for="(item, index) of obj.a" :key="index">  
                <text>{{ item.name }}</text>  
                :  
                <text>{{ item.value }}</text>  
            </view>  
        </block> -->  
    </view>
onLoad() {  
        let _this = this;  
        setTimeout(() => {  
            _this.obj = {  
                a: [  
                    {  
                        name: 'item1',  
                        value: 1  
                    },  
                    {  
                        name: 'item2',  
                        value: 2  
                    },  
                    {  
                        name: 'item3',  
                        value: 3  
                    },  
                    {  
                        name: 'item4',  
                        value: 4  
                    },  
                    {  
                        name: 'item5',  
                        value: 5  
                    }  
                ],  
                b: []  
            };  
        }, 1000);  
    }  

预期结果:

就像3.6.15版本编译的结果那样,初次进入页面正常

实际结果:

更新到3.7.9版本后同样的代码会报
.length of undefined
.length of null

bug描述:

Vue2 项目中访问 length 属性报错的Bug

<block v-if="obj.a.length"></block>

使用HBuilderX3.6.15版本编译结果不会报任何错误

使用HBuilderX.3.6.18、HBuilderX3.7.9版本编译结果均会报.length获取异常

2023-04-23 17:32 负责人:无 分享
已邀请:
yyyttt

yyyttt

data函数里什么样的?

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

    data() {

    return {

    obj: ''

    };

    },

    2023-04-23 17:39

h***@163.com

h***@163.com (作者)

原来是编译if语句的问题呀

这是3.7.9编译后的


这是3.6.15编译后的


h***@163.com

h***@163.com (作者)

是因为修复了这个bug才引出的这个问题吧

DCloud_UNI_GSQ

DCloud_UNI_GSQ

使用最新版测试一下,看是否仍然存在此问题

2***@qq.com

2***@qq.com

你好 请问有什么解决方案吗
打包成h5后控制台就会报错,但是Hbuilder本地运行就不会报错

2***@qq.com

2***@qq.com

其中一个length报错实例如附件图片所示

  • YUANRJ

    根据图片信息,无法定位具体问题,麻烦上传个可复现的工程吧,可以新开个帖子

    2024-02-18 15:50

要回复问题请先登录注册