uni-app 鸿蒙京东小程序有比较严重的基础性问题,子组件内接收不到父组件传递的参数变化

uni-app 鸿蒙京东小程序有比较严重的基础性问题,子组件内接收不到父组件传递的参数变化

示例代码:

<SocialLogin :isAgreement="isAgreement"></SocialLogin>
export default {  
    props: {  
        isAgreement: Boolean  
    },  
    watch: {  
      isAgreement(val) {  
        console.log('isAgreement watch', val)  
        // 监控不到参数变化  
      }  
    },  
}

操作步骤:

按上述代码示例创建自定义组件,发布京东小程序。打开京东模拟器,用鸿蒙手机预览或者调试。

预期结果:

子组件正常接收参数变化。

实际结果:

无响应,子组件接收不到参数变化

bug描述:

鸿蒙京东小程序有比较严重的基础性问题,组件绑定动态参数,参数变化,组件内接收不到参数变化。



| 信息类别       | 内容                           |
|----------------|-------------------------------|
| 产品分类       | uniapp/小程序/京东             |
| PC开发环境     | Mac                           |
| PC开发环境版本 | 15.5                          |
| 第三方工具版本 | 2.4.1                         |
| 基础库版本     | 3.0.0-4020420240722002        |
| 项目创建方式   | CLI                           |
| CLI版本        | 10.9.2                        |

更多关于uni-app 鸿蒙京东小程序有比较严重的基础性问题,子组件内接收不到父组件传递的参数变化的实战教程也可以访问 https://www.itying.com/category-93-b0.html

9 回复

你在watch监听isAgreement时加个immediate:true试试呢。

更多关于uni-app 鸿蒙京东小程序有比较严重的基础性问题,子组件内接收不到父组件传递的参数变化的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


没有效果

你升级下uniapp的依赖到最新试试呢?

升级到最新也不行

回复 dc_jerry: 你是所有的watch都失效了嘛?安卓手机运行这段代码有问题吗?

回复 DCloud_UNI_JBB: 安卓、iOS没有问题。鸿蒙系统的微信、支付宝小程序也没有问题。只有鸿蒙系统下的京东小程序有问题。

回复 dc_jerry: 大佬,想问下您解决了吗,我现在跟你一模一样的问题,在鸿蒙上,子组件props怎么都收不到新的数据

回复 DCloud_UNI_JBB: 您好,当前我也出现这个问题了,想问下是哪一块还没兼容到吗

这是一个已知的鸿蒙京东小程序平台兼容性问题。在鸿蒙系统下,子组件的props监听机制存在异常,watch无法正确触发。

建议的临时解决方案:

  1. 使用computed属性替代watch
computed: {
  agreementStatus() {
    return this.isAgreement
  }
}
  1. 在mounted中直接访问props值
mounted() {
  console.log('isAgreement initial value', this.isAgreement)
}
回到顶部