1***@qq.com
1***@qq.com
  • 发布:2025-02-13 09:37
  • 更新:2025-02-13 09:41
  • 阅读:22

【报Bug】使用自定义hooks时,渲染模版时数据绑定异常,小程序与web均无法响应式!

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

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

HBuilderX类型: 正式

HBuilderX版本号: 4.45

手机系统: iOS

手机系统版本号: iOS 15

手机厂商: 苹果

手机机型: iPhone12

页面类型: vue

vue版本: vue3

打包方式: 云端

项目创建方式: HBuilderX

示例代码:

hooks

import { ref } from "vue"  

const useTest = () => {  
    const flag = ref(false)  
    const changeFlag = () => {  
        flag.value = !flag.value  
    }  
    return {  
        flag,  
        changeFlag  
    }  
}  

export default useTest

页面

<template>  
    <view class="content">  
        <view @click="onChange">改变flag状态</view>  

        <view>页面flag:{{pageFlag}}</view>  
        <view>页面flag表达式:{{pageFlag ? 'yes' : 'no'}}</view>  
        <view>hooks-flag:{{test.flag}}</view>  
        <view>hooks-flag表达式:{{test.flag ? 'yes' : 'no'}}</view>  
    </view>  
</template>  

<script setup>  
    import { ref } from "vue"  
    import useTest from '../../hooks/useTest';  
    const test = useTest()  
    const pageFlag = ref(false)  
    const onChange = () => {  
        test.changeFlag()  
        pageFlag.value = !pageFlag.value  
    }  
</script>  

<style>  
    .content{  
        text-align: center;  
    }  
</style>

操作步骤:

点击'改变flag状态'文本即可

预期结果:

'hooks-flag表达式'的结果与'页面flag表达式'一致

实际结果:

'页面flag表达式'响应式变化
'hooks-flag表达式'无变化,无法响应式

bug描述:

使用自定义hooks时,在模版里面绑定表达式,则响应式失效,如果使用原值则响应式,查看是编译取值问题。

2025-02-13 09:37 负责人:无 分享
已邀请:
靐齉齾麤龖龗

靐齉齾麤龖龗 - 解决不了问题,那就解决提出问题的人

试试 const {flag, changeFlag}= useTest() 这样使用应该是可以的

要回复问题请先登录注册