丶听雨
丶听雨
  • 发布:2023-10-10 10:43
  • 更新:2023-10-11 18:06
  • 阅读:738

【报Bug】抖音小程序最新3.0.0基础库时uniapp中使用ref不能获取到组件内容

分类:uni-app

产品分类: uniapp/小程序/字节跳动

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: windows10版本22H2

第三方开发者工具版本号: 4.1.4

基础库版本号: 3.0.0

项目创建方式: CLI

CLI版本号: 2.0.2-alpha-3090120230927001

示例代码:
<template>  
    <view class="content">  
    加载子组件:  
    <ChildComponent v-if="type === 'abc'" ref="child"/>  
    当前运行基础库:{{ system.SDKVersion }}  
    </view>  
</template>  

<script>  
import ChildComponent from './child-component.vue'  
    export default {  
    components: {ChildComponent},  
    data() {  
      return {  
        type: '',  
        system: {}  
      }  
    },  
    onLoad() {  
      setTimeout(() => {  
        this.type = 'abc'  
      }, 100)  
      const timer = () => {  
        console.log(this.$refs.child, 'this.$refs.childthis.$refs.childthis.$refs.child')  
        if (this.$refs.child && this.$refs.child.lifeProxyLoad) {  
          this.$refs.child.lifeProxyLoad({  
            type: this.type  
          })  
        } else {  
          setTimeout(() => {  
            timer()  
          }, 100)  
        }  
      }  
      timer()  
      uni.getSystemInfo().then(system => {  
        this.system = system  
        console.log(system.SDKVersion, 'SDKVersionSDKVersionSDKVersion')  
      })  
    },  
    }  
</script>  

<style>  
    .content {  
        display: flex;  
        flex-direction: column;  
        align-items: center;  
        justify-content: center;  
    }  
</style>

操作步骤:

如上述代码,type赋值添加延迟后,childComponent组件可正常展示,但在js中无法通过this.$refs.child获取childComponent组件,目前在抖音最新版,所使用的基础库为3.0.0时可以复现该问题。

预期结果:

目前抖音开发工具不能选择3.0.0的基础库,开发工具是正常的,真机最新版抖音异常

实际结果:

无法通过$refs获取组件,现有业务代码中无法向组件内传值

bug描述:

抖音最新版使用uniapp,组件中使用ref,如果在v-if中使用了延迟设置的属性来控制,则会导致js中无法获取到ref内容,步骤如下图

2023-10-10 10:43 负责人:无 分享
已邀请:
YUANRJ

YUANRJ

已确认问题,后续请在该 issue 跟进。

要回复问题请先登录注册