uni-app 双重v-for 第二个v-for是动态组成时 绑定事件输出item全部数值 数据异常

uni-app 双重v-for 第二个v-for是动态组成时 绑定事件输出item全部数值 数据异常

操作步骤:

  • uniapp编译3.18版本 双重循环 第二个循环是动态循环时输出 第一个循环的item数据异常

预期结果:

  • 正常输出

实际结果:

  • 数据异常

bug描述:

  • 双重v-for 第二个v-for是动态组成时 绑定事件输出item全部数值,数据异常 图1是代码循环的步骤和第二个循环的组装方式,绑定的@click事件中输出的items数据是异常的,如果不是动态的数据会是正常的。图二图三分别是正常输出和异常输出,最后发现问题出至于uiniapp编译的版本问题,又重新下载了3.12版本之后输出正常
信息类别 信息内容
产品分类 uniapp/小程序/微信
PC开发环境 Windows
操作系统版本号 Windows 10专业版
HBuilderX类型 正式
HBuilderX版本号 3.1.18
第三方开发者工具 1.05
基础库版本号 2.17
项目创建方式 HBuilderX

Image 1 Image 2 Image 3


更多关于uni-app 双重v-for 第二个v-for是动态组成时 绑定事件输出item全部数值 数据异常的实战教程也可以访问 https://www.itying.com/category-93-b0.html

7 回复

希望官方能解决一下

更多关于uni-app 双重v-for 第二个v-for是动态组成时 绑定事件输出item全部数值 数据异常的实战教程也可以访问 https://www.itying.com/category-93-b0.html


有人遇到同样的问题了吗

图片详细描述了 官方可以尝试一下

官方可以给个反馈吗

现在都不敢升版本了

这是一个已知的 uni-app 编译版本问题。在 3.1.18 版本中,双重 v-for 循环在第二个循环使用动态数据时,事件绑定的 item 作用域会出现异常,导致输出的数据不正确。

问题分析: 当第二个 v-for 使用动态生成的数据时,编译后的代码在事件处理函数中无法正确捕获当前循环项的引用,而是引用了错误的变量作用域。这属于编译器在处理嵌套循环作用域时的 bug。

解决方案:

  1. 临时回退版本:如你所述,回退到 3.1.12 版本可以暂时解决
  2. 手动绑定数据:在事件处理中通过参数显式传递所需数据
    [@click](/user/click)="handleClick(item, subItem)"
回到顶部