<template>
<view class="content">
<view :prop="options" :change:prop="renderScript.updateOptions" />
</view>
</template>
<script>
export default {
data() {
return {
options: {
a: '1',
}
}
}
}
</script>
<script module="renderScript" lang="renderjs">
export default {
methods: {
updateOptions(newVal) {
console.log(newVal, this.options)
}
}
}
</script>

- 发布:2022-11-25 09:58
- 更新:2023-01-05 16:58
- 阅读:273
产品分类: uniapp/App
PC开发环境操作系统: Mac
PC开发环境操作系统版本号: 12.6
HBuilderX类型: 正式
HBuilderX版本号: 3.6.5
手机系统: Android
手机系统版本号: Android 11
手机厂商: 小米
手机机型: mix4
页面类型: vue
vue版本: vue3
打包方式: 云端
项目创建方式: HBuilderX
示例代码:
操作步骤:
使用代码示例分别在vue2和vue3环境运行
使用代码示例分别在vue2和vue3环境运行
预期结果:
vue3和vue2表现一致
vue3和vue2表现一致
实际结果:
vue3和vue2表现不一致
vue3和vue2表现不一致
bug描述:
如代码示例
vue2中updateOptions接收到的会是 object类型,并且this.options也能访问
vue3中updateOptions接收到的会是 string类型,并且this.options访问不到
2 个回复
DCloud_UNI_Anne
已记录问题后续排查,已加分感谢反馈!
YUANRJ
您好,类型问题后续更新会解决。关于 this.options 的读取是不支持的。数据位于逻辑层,而 renderjs 位于视图层不能直接访问数据,Vue2 中由于设计原因一部分数据会单项同步到视图层导致可以同时读取到(文档中并未说明此用法不推荐使用)。
yyyttt (作者)
但对象中的属性更新时,updateOptions 没有回调
2023-01-05 17:19
yyyttt (作者)
vue2可以监听,也是同一个问题吗?
2023-01-05 17:24
YUANRJ
回复 2***@qq.com: 您好,此问题已记录,可以先赋值整个对象进行临时解决。
2023-01-12 10:29