uni-app 最新版本的HBuilderX编译后 view、image等的dataset值无法修改 只在最近的几个版本出现 之前版本无问题

uni-app 最新版本的HBuilderX编译后 view、image等的dataset值无法修改 只在最近的几个版本出现 之前版本无问题

开发环境 版本号 项目创建方式
Mac 10.15.7 HBuilderX

操作步骤:

VUE页面中js混合使用普通 script + renderjs的方式, 编辑器更新到最新几个版本的hbuilder X之后, 原来正常运行的代码不生效了。 类似如下的代码,给html元素如view 或者 image 附加属性并修改: 例如

menu_nodes.dataset.nodeid = nodeid;
menu_nodes.dataset.xx = oldX;
menu_nodesdataset.yy = oldY;

相应的 nodeid xx yy 都不能修改了。

<image data-nodeid="0" @tap="delNode" src="../../static/index/topo/menu/node_delete.png" class="menu_nodes menu_icon-5" />

请官方人员帮忙查看一下,问题的原因。 谢谢!

预期结果:

对view 、image等的dataset 修改能正常

实际结果:

结果不正常

bug描述:

VUE页面中js混合使用普通 script + renderjs的方式, 编辑器更新到最新几个版本的hbuilder X之后, 原来正常运行的代码不生效了。 类似如下的代码,给html元素如view 或者 image 附加属性并修改: 例如

menu_nodes.dataset.nodeid = nodeid;
menu_nodes.dataset.xx = oldX;
menu_nodesdataset.yy = oldY;

相应的 nodeid xx yy 都不能修改了。

<image data-nodeid="0" @tap="delNode" src="../../static/index/topo/menu/node_delete.png" class="menu_nodes menu_icon-5" />

请官方人员帮忙查看一下,问题的原因。 谢谢!


更多关于uni-app 最新版本的HBuilderX编译后 view、image等的dataset值无法修改 只在最近的几个版本出现 之前版本无问题的实战教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复

menu_nodes没看出是啥
示例能否完善一下

更多关于uni-app 最新版本的HBuilderX编译后 view、image等的dataset值无法修改 只在最近的几个版本出现 之前版本无问题的实战教程也可以访问 https://www.itying.com/category-93-b0.html


更新新版本之后就好了

这是一个已知的兼容性问题。在最新版本的HBuilderX中,由于底层引擎升级,dataset属性的动态修改在renderjs和普通script混合使用时可能出现异常。

目前建议的解决方案:

  1. 使用Vue的数据驱动方式替代直接操作dataset
// 在data中定义数据
data() {
  return {
    nodeData: {
      nodeid: '0',
      xx: '',
      yy: ''
    }
  }
}

// 通过方法更新数据
updateNodeData(nodeid, x, y) {
  this.nodeData.nodeid = nodeid
  this.nodeData.xx = x
  this.nodeData.yy = y
}
  1. 在模板中通过属性绑定
<image :data-nodeid="nodeData.nodeid" :data-xx="nodeData.xx" :data-yy="nodeData.yy" [@tap](/user/tap)="delNode" src="../../static/index/topo/menu/node_delete.png" class="menu_nodes menu_icon-5" />
回到顶部