1***@qq.com
1***@qq.com
  • 发布:2024-12-05 19:50
  • 更新:2024-12-07 18:35
  • 阅读:62

【报Bug】Vue3的组合函数,组合函数return出来的变量,在页面里面丢失了响应式

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Mac

PC开发环境操作系统版本号: Macos

HBuilderX类型: 正式

HBuilderX版本号: 4.24

手机系统: Android

手机系统版本号: Android 14

手机厂商: 小米

手机机型: 小米 13

页面类型: vue

vue版本: vue2

打包方式: 云端

项目创建方式: HBuilderX

示例代码:
export function usePayFun() {  
    let payStatus = ref("pendding")  
     setTimeout( () => {  
            payStatus.value = 'complete'  
     }, 10000)  
    return {payStatus}  
}  

// 页面引用  
const {payStatus} = usePayFun()  

watch(payStatus, () => {  
    console.log(payStatus.value)  
})

操作步骤:
export function usePayFun() {  
    let payStatus = ref("pendding")  
     setTimeout( () => {  
            payStatus.value = 'complete'  
     }, 10000)  
    return {payStatus}  
}  

// 页面引用  
const {payStatus} = usePayFun()  

watch(payStatus, () => {  
    console.log(payStatus.value)  
})

预期结果:

watch 会监听执行

实际结果:

watch 不会监听执行

bug描述:

在uni-app里面使用Vue3的组合函数,组合函数return出来的变量,在页面里面丢失了响应式,页面视图不会更新,watch也监听不到变化

2024-12-05 19:50 负责人:无 分享
已邀请:
锦鲤丶接单丶

锦鲤丶接单丶 - 锦鲤丶接单丶18560000860丶10+年开发经验

watch(() => usePayFun().payStatus, () => {
console.log(payStatus.value)
})
这样试试呢

锦鲤丶接单丶

锦鲤丶接单丶 - 锦鲤丶接单丶18560000860丶10+年开发经验

你是用的vue2吗?

我用你上面的例子,是能正常监听到的,我用的是vue3,运行到H5和小米手机都是可以的

  • 1***@qq.com (作者)

    你可以吗?用的vue3

    2024-12-10 11:15

  • 锦鲤丶接单丶

    回复 1***@qq.com: 我测试的是可以的

    2024-12-10 16:21

要回复问题请先登录注册