8***@qq.com
8***@qq.com
  • 发布:2020-04-26 15:43
  • 更新:2022-09-18 15:49
  • 阅读:3838

【报Bug】APP端还是不支持slot动态插槽名

分类:uni-app

详细问题描述

uni-app在IDE更新日志中指出,新版本APP已经支持动态slot插槽,然而,在我封装自定义组件的过程中,发现只有APP端无法正常渲染

[内容]
因为业务组件比较复杂,不方便调试,所以我专门写了一个测试组件复现这个问题

自定义组件代码如下

<template>  
  <view>  
    <view v-for="(item, index) in list" :key="item.id">  
      <!-- #ifdef H5 || APP-PLUS -->  
      <slot :name="item.id"></slot>  
      <!-- #endif -->    
      <!-- #ifdef MP -->    
      <slot name="{{item.id}}"></slot>    
      <!-- #endif -->  
    </view>  
  </view>  
</template>  

<script>  

export default {  
  props: {  
    list: {  
      type: Array,  
      default () {  
        return {}  
      }  
    }  
  }  
}    

</script>  

<style>  
</style>

调用该组件的部分代码如下

<template>  
  <view>  
    <test :list="navData">  
      <template v-slot:a>  
        aaaaaaaaaaaaaaaaa  
      </template>  
      <template v-slot:b>  
        bbbbbbbbbbbbbbbbbbb  
      </template>  
    </test>  
    <!-- <cm-calendar></cm-calendar> -->  

  </view>  
</template>  

<script>  
import test from '../test/test.vue'  

export default {  
  name: 'calendarView',  
  components: {  
    test  
  },  
  data () {  
    return {  
      navData: [  
        {  
          text: 'a',  
          id: 'a'  
        },  
        {  
          text: 'b',  
          id: 'b'  
        }  
      ]  
    }  
  },  
  methods: {  
  },  
  created () {  
  }  
}  
</script>

[步骤]

[结果]

[期望]

运行结果:在小程序以及H5端正常,APP端没有渲染出动态插槽中的内容

IDE运行环境说明

[HBuilder 或 HBuilderX。如果你用其他工具开发uni-app,也需要在此说明]

[IDE版本号] 2.16.5

[windows版本号]

[mac版本号]

uni-app运行环境说明

[运行端是h5或app或某个小程序?] APP端异常

[运行端版本号]

[项目是cli创建的还是HBuilderX创建的?如果是cli创建的,请更新到最新版cli再试] HBX 创建

[编译模式说明:自定义组件模式?纯nvue模式?v3模式?] v3模式

App运行环境说明

[Android版本号]

[iOS版本号]

[手机型号]

[模拟器型号]

附件

[IDE问题请提供HBuilderX运行日志。菜单帮助-查看运行日志,点右键打开文件所在目录,将log文件压缩成zip包上传]

[App问题请提供可重现问题的代码片段,你补充的细一点,问题就解决的快一点]

[App安装包或H5地址]

[可重现代码片段]

联系方式

[QQ]

小小的抱怨一下,如果不起【报bug】的标题,那么你的问题将永远得不到关注QAQ。

2020-04-26 15:43 负责人:DCloud_UNI_GSQ 分享
已邀请:

最佳回复

DCloud_UNI_GSQ

DCloud_UNI_GSQ

HBuilderX 3.5.0 alpha 已支持

2***@qq.com

2***@qq.com

今天碰到同样的问题,

g***@gmail.com

g***@gmail.com

临时 HACK 方案:https://ask.dcloud.net.cn/article/38657

c***@163.com

c***@163.com

HBuilderX 3.3.5 编译器版本3 vue2 版本遇到同样问题,这个对做基础组件来说,太重要了

前段未来

前段未来 - JelonJoo

也是遇到这个问题了,这么重要且高频使用的特性居然不支持。楼上的hack方法好是好,但是限制也很多,好多时候index是在组件内部的,外部拿不到index , 也有可能是动态的name压根没有vfor 。 目前只能使用默认插槽,再进行vif判断了。

DCloud_UNI_GSQ

DCloud_UNI_GSQ

你提的需求和更新日志里说的不是一件事。
Bug类型肯定比普通问题优先级高。
这个需求有当然更方便,没有也不影响功能实现。暂时还未排期。后续会处理

4***@qq.com

4***@qq.com

坐等更新呢
hbuilder-x 2.7.3
相同的问题

DCloud_UNI_GSQ

DCloud_UNI_GSQ

这里的动态插槽名指的是:v-slot:[dynamicSlotName]
https://cn.vuejs.org/v2/guide/components-slots.html#动态插槽名

g***@gmail.com

g***@gmail.com

该问题什么时候解决呢?

w***@163.com

w***@163.com

这个问题修复了吗,都一年了

9***@qq.com

9***@qq.com

今天我也碰到了!APP里面只能把name写死,动态赋值直接一堆报错!也是醉了 这么常用的两年还没修复!

f***@outlook.com

f***@outlook.com

22年了。。还是不能用动态插槽名!真的够了。 。。。

  • DCloud_UNI_GSQ

    为什么还不能?可以了啊

    2022-08-11 18:09

  • f***@outlook.com

    回复 DCloud_UNI_GSQ: 啊?能给个示例吗? 我这边运行的时候 hbuilderx 还在报错不支持 动态插槽名。hbuilderx是3.5版本。。。

    2022-08-14 18:35

  • f***@outlook.com

    回复 DCloud_UNI_GSQ: vue 2 不能用吧!你是不是当vue3了。。

    hbuildx 还是报错 v-slot 不支持动态插槽名 ;

    2022-08-15 15:06

  • DCloud_UNI_GSQ

    回复 f***@outlook.com: 是vue2,你说的是app吗?app从来没有这个报错提示。小程序倒是有类似的报错提示,后续优化提示语:如当前模式不支持动态插槽名,请设置 scopedSlotsCompiler 为 augmented

    2022-08-16 20:57

  • f***@outlook.com

    回复 DCloud_UNI_GSQ: ok!起作用了。感谢!原来是我文档看少了!

    2022-08-18 10:35

2***@qq.com

2***@qq.com

为什么我的小程序还是报这种错

  • DCloud_UNI_GSQ

    新版已经优化提示语:如当前模式不支持动态插槽名,请设置 scopedSlotsCompiler 为 augmented

    2022-09-19 11:12

  • DCloud_UNI_GSQ

    你可以参考一下我和你楼上的问答

    2022-09-19 11:12

  • 2***@qq.com

    回复 DCloud_UNI_GSQ: 你看下我的第三章图里面有写这个配置的,没有生效,不知道为什么呢

    5 天前

  • DCloud_UNI_GSQ

    回复 2***@qq.com: 因为你还没升级啦

    5 天前

  • 2***@qq.com

    回复 DCloud_UNI_GSQ: 您是说我的idea版本嘛,在请教您个问题,小程序中的tabbar中是不是存在着数据缓存啊

    5 天前

要回复问题请先登录注册