Closed HyperLife1119 closed 1 year ago
@HyperLife1119
Taro 会为开发者编写的 component 加上 mixins,从而注入一些逻辑:
但是 Vue3 的 resolveMergedOptions
逻辑如下:
可以看到当使用了 mixins 时,会进行 Object.assign
,这时会把 class
组件原型链上的方法(例如 data
)给弄丢了,从而造成上述 bug。
暂时没有解决的办法。
另外,还发现一个问题:
无法绑定 vant-weapp
组件库的 van-field
组件 readonly
属性
<van-field label="label" placeholder="placeholder" :readonly="true" />
@HyperLife1119
Taro 会为开发者编写的 component 加上 mixins,从而注入一些逻辑:
但是 Vue3 的
resolveMergedOptions
逻辑如下:可以看到当使用了 mixins 时,会进行
Object.assign
,这时会把class
组件原型链上的方法(例如data
)给弄丢了,从而造成上述 bug。暂时没有解决的办法。
如果编译到H5,却是正常的~
试了 H5 也是不行,也会增加 mixins
试了 H5 也是不行,也会增加 mixins
那可以顺便看看这个问题吗?
无法绑定 vant-weapp
组件库的 van-field
组件 readonly
属性
<van-field label="label" placeholder="placeholder" :readonly="true" />
可以在官方仓库里复现到 https://github.com/NervJS/taro3-vant-sample
相关平台
微信小程序
复现仓库
https://github.com/HyperLife1119/taro-test 小程序基础库: 2.19.3 使用框架: Vue 3
复现步骤
编译到小程序,打开 index 首页,页面显示
Counter:
; 打开 pages/index/index.vue ,将 new class 去除,重新编译,页面显示Counter: 1
;期望结果
即使使用了 new class ,页面也应该输出 Counter: 1
实际结果
页面输出 Counter:
环境信息
补充信息
由于需要使用到装饰器,需要使用到 class,而不是使用匿名对象 { }