金布
金布
  • 发布:2019-11-07 20:05
  • 更新:2021-07-15 11:39
  • 阅读:2230

【报Bug】slot 标签不能动态定义插槽名

分类:uni-app

如下示例代码转换成微信小程序是无效的,不会生成 slot 标签。

      <slot   
        :name='field.name'  
      ></slot>    

然而无论是 vue 2.6 还是小程序都可以动态定义插槽名,微信小程序代码如下。

      <slot   
        name='{{ field.name }}'  
      ></slot>    

所以认为这是一个转译上的 BUG,希望修复,现阶段是用的条件编译解决问题。

2019-11-07 20:05 负责人:DCloud_UNI_TJX 分享
已邀请:
神的尾巴

神的尾巴 - 欢迎关注我的微信公众号:神的尾巴

可以用hack方法,例如我写的动态tab组件

<slot name="tab-{{index}}" />

编译之后原样输出,小程序可以正常解析,在微信和QQ小程序测试通过

  • wlaba

    优秀,可以用

    2020-06-07 17:10

  • SirW

    这样写完之后 在template里要怎么用?

    2020-09-06 20:26

  • 神的尾巴

    回复 SirW: 和常规一样使用


    <block slot="tab-1">  
    <!-- ... -->
    </block>

    2020-09-07 12:34

  • DKUN

    用这个方法的话,我的H5又不显示了

    2020-12-17 10:43

  • h***@163.com

    试了一下午终于找到答案了,

    2021-08-31 17:07

4***@qq.com

4***@qq.com

<!-- #ifdef H5 -->  
            <slot :name="'' + tab.id"></slot>  
            <!-- #endif -->  
            <!-- #ifndef H5-->  
            <slot name="page-{{tab.id}}"></slot>  
            <!-- #endif -->
  • 紫洋

    app没有上无效吧?

    2020-12-10 20:04

陈晨1

陈晨1

等v3版本应该就可以修复了

5***@qq.com

5***@qq.com

同问

DCloud_UNI_TJX

DCloud_UNI_TJX

目前小程序平台不支持动态定义 slot 的 name,可使用条件编译处理暂时规避

1***@qq.com

1***@qq.com - 90It男

我在app上使用条件编译的方式测试,显示是正常的。但是当我把它作为组件,名字由外面传入的时候,不显示了

d***@163.com

d***@163.com

app端貌似也不能使用动态 slot name ,1楼的方案可以

要回复问题请先登录注册