[youzan/vant-weapp]Cell的default插槽不能用

2024-05-15 568 views

回答

6

经查看源码,根本就没有所谓的default插槽,那为何文档里又写着有呢?

1

把源代码的 `

{{ value }}
<slot wx:else />

改成

{{ value }}
<slot wx:else name="default" />

` 后生效. 这是一个很明显的bug.

3
名称 说明
default 自定义value显示内容,如果设置了value属性则不生效
title 自定义title显示内容,如果设置了title属性则不生效
label 自定义label显示内容,需要设置 use-label-slot属性
icon 自定义icon显示内容,如果设置了icon属性则不生效
right-icon 自定义右侧按钮,默认是arrow,如果设置了is-link属性则不生效
6

这里有点歧义,default 的意思是默认插槽,默认插槽不需要声明插槽名称

比如下面这样的写法就是使用默认插槽:

<van-cell>
  <!-- 下面这个 view 会插入到默认插槽里 -->
  <view>默认插槽</view>

  <!-- 下面这个 view 会插入到 title 插槽里 -->
  <view slot="title">Title 插槽</view>
</van-cell>

出现这个歧义的原因是:

  • 在 Vue 里,slot 为空或 slot="default" 都会指向默认插槽
  • 在微信小程序里,slot 为空指向默认插槽,slot="default" 指向名称为 default 的插槽

后续我们会调整下小程序插槽的文档