收藏
回答

在组件中使用 model:value ,observers,value 父组件一次更新触发两次

框架类型 问题类型 终端类型 微信版本 基础库版本
小程序 Bug 微信iOS客户端 8.0.64 3.8.10

在子组件上使用 model:value , 父组件更新valuie。 这时 子组件如果用observers监听了valuie 一次更新会触发两次??

回答关注问题邀请回答
收藏

3 个回答

  • LastLeaf
    LastLeaf
    1小时前

    这个实际上是小程序组件框架的一个 bug。默认的组件框架在更新 model: 值时,需要一次额外父组件->子组件的“隐式”setData 来进行同步。这就最终导致 observers 会触发两次。

    但为了保证接口稳定性,我们没法修复这个 bug,否则会有破坏性变更。

    如果使用 skyline(或以任意方式激活 componentFramework: "glass-easel")、使用 glass-easel 作为组件框架,可以避免这个触发两次的问题。

    1小时前
    有用
    回复
  • 贾公子
    贾公子
    2025-11-18

    我不太理解小程序的model:value 是如下流程进行更新的吗

    1.父亲组件更新 value --> 内部为了同步子组件 调用了setdata --> 第一次触发

    2.子组件拿到了父组件的变化值之后 -->为了使子组件内部发生变化,调用一次setdata -->第二次触发


    2025-11-18
    有用
    回复
  • 智能回答 智能回答 本次回答由AI生成
    2025-11-18
    有用
登录 后发表内容