收藏
回答

小程序判断有没有传入某个具名slot

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 需求 / 客户端 6.5.2 2.6.1

- 需求的场景描述(希望解决的问题)

自定义组件有多个具名slot,需要根据是否传入slot来做一些处理


```

<view class="dialog {{className}}" catchtap="dialogTap">

    <view class="dialog-title">

        <text>{{title}}</text>

        <slot name="title"></slot>

    </view>

</view>

```

比如上述代码,如果传入了title的slot,则显示传入的slot; 如果传入了title属性,则显示test组件;如果两个都不存在,隐藏dialog-title;但是没法判断两个都不存在?(没法判断有没有传入title的slot)

- 希望提供的能力

 希望有api可以判断外部是否传入了某个slot

最后一次编辑于  2019-06-14
回答关注问题邀请回答
收藏

2 个回答

  • 🇦 🇷 🇴 🇺 🇸 🇪
    🇦 🇷 🇴 🇺 🇸 🇪
    2021-12-11
    这里可以使用另一种方式来实现,如果提供了 title 属性,则展示内部的 title,如果没有提供title属性,想使用 title 命名插槽,则可以增加属性 use-title-slot 来表示使用了插槽
    
    
    XXX.js
    ```
    Component({
    	// ...
    	properties: {
    		title: String,
    		useTitleSlot: Boolean // 是否使用title插槽
    	}
    })
    ```
    
    
    XXX.wxml
    ```
    <view class="dialog {{className}}" catchtap="dialogTap">
        <view wx:if="{{ title || useTitleSlot }}" class="dialog-title">
            <text wx:if="{{ title }}" >{{title}}</text>
            <slot wx:else name="title"></slot>
        </view>
    </view>
    ```
    
    2021-12-11
    有用 1
    回复
  • rock
    rock
    2019-06-14

    后续版本会支持该特性,请关注小程序的功能更新,谢谢!

    2019-06-14
    有用
    回复 11
    • Believer
      Believer
      2021-04-26
      现在貌似还是没支持这个特性啊
      2021-04-26
      回复
    • momo
      momo
      2021-05-14
      都2021年了还不支持
      2021-05-14
      1
      回复
    • 豪😬
      豪😬
      2021-11-19回复momo
      笑死,挂了几年的需求评估
      2021-11-19
      回复
    • 始终
      始终
      2021-11-26回复momo
      马上就2022年了。。还是不支持。。这么大的一个鹅厂,这么多人写的东西。竟然比不起一个个人写的vue。
      2021-11-26
      1
      回复
    • 🇦 🇷 🇴 🇺 🇸 🇪
      🇦 🇷 🇴 🇺 🇸 🇪
      2021-12-11回复始终
      因为这需求没有纳入绩效考核内
      2021-12-11
      1
      回复
    查看更多(6)
登录 后发表内容