小程序
小游戏
企业微信
微信支付
扫描小程序码分享
在子组件上使用 model:value , 父组件更新valuie。 这时 子组件如果用observers监听了valuie 一次更新会触发两次??
3 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
这个实际上是小程序组件框架的一个 bug。默认的组件框架在更新 model: 值时,需要一次额外父组件->子组件的“隐式”setData 来进行同步。这就最终导致 observers 会触发两次。
但为了保证接口稳定性,我们没法修复这个 bug,否则会有破坏性变更。
如果使用 skyline(或以任意方式激活 componentFramework: "glass-easel")、使用 glass-easel 作为组件框架,可以避免这个触发两次的问题。
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
我不太理解小程序的model:value 是如下流程进行更新的吗
1.父亲组件更新 value --> 内部为了同步子组件 调用了setdata --> 第一次触发
2.子组件拿到了父组件的变化值之后 -->为了使子组件内部发生变化,调用一次setdata -->第二次触发
本回答由AI生成,可能已过期、失效或不适用于当前情形,请谨慎参考
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
这个实际上是小程序组件框架的一个 bug。默认的组件框架在更新 model: 值时,需要一次额外父组件->子组件的“隐式”setData 来进行同步。这就最终导致 observers 会触发两次。
但为了保证接口稳定性,我们没法修复这个 bug,否则会有破坏性变更。
如果使用 skyline(或以任意方式激活 componentFramework: "glass-easel")、使用 glass-easel 作为组件框架,可以避免这个触发两次的问题。
我不太理解小程序的model:value 是如下流程进行更新的吗
1.父亲组件更新 value --> 内部为了同步子组件 调用了setdata --> 第一次触发
2.子组件拿到了父组件的变化值之后 -->为了使子组件内部发生变化,调用一次setdata -->第二次触发