san icon indicating copy to clipboard operation
san copied to clipboard

在一个组件中定义了一个默认插槽和两个命名插槽,在该组件内部如何判断默认插槽是否有传入值?

Open jingxin2015 opened this issue 1 year ago • 1 comments

在一个组件中定义了一个默认插槽和两个命名插槽,在该组件内部如何判断默认插槽是否有传入值? 当只有一个默认插槽的时候,我可以通过 !!this.sourceSlots?.noname 来判断是否在组件外部传入默认插槽内容,但是当该组件同时有命名插槽的时候,如果只传入了命名插槽,this.sourceSlots?.noname 也是有值的,这样就不能通过这个来判断默认插槽了,有没有其他办法可以判断?谢谢

jingxin2015 avatar May 24 '24 06:05 jingxin2015

@errorrik 有没有什么办法呀?

jingxin2015 avatar Sep 18 '24 05:09 jingxin2015

我猜是空白的文本节点被传进了默认插槽。可以考虑将 trimWhitespace 设置成 all

https://baidu.github.io/san/doc/api/#trimWhitespace

errorrik avatar Oct 30 '24 04:10 errorrik

我猜是空白的文本节点被传进了默认插槽。可以考虑将 trimWhitespace 设置成 all

https://baidu.github.io/san/doc/api/#trimWhitespace

好的,我测试下,如果是这个问题的话那就没问题了

jingxin2015 avatar Oct 30 '24 07:10 jingxin2015

我测试了,确实是空白文本节点的问题,设置 trimWhitespace 属性为 blank 或 all 之后就正常了,我还想问个问题,trimWhitespace 这个属性是只对本组件生效吗?还是会对所有子组件也生效?

jingxin2015 avatar Oct 31 '24 00:10 jingxin2015

我测试了,确实是空白文本节点的问题,设置 trimWhitespace 属性为 blank 或 all 之后就正常了,我还想问个问题,trimWhitespace 这个属性是只对本组件生效吗?还是会对所有子组件也生效?

trimWhitespace 对当前声明的组件有效

子组件只是当前要使用的组件,trimWhitespace 属性不会影响它们

errorrik avatar Oct 31 '24 02:10 errorrik

我测试了,确实是空白文本节点的问题,设置 trimWhitespace 属性为 blank 或 all 之后就正常了,我还想问个问题,trimWhitespace 这个属性是只对本组件生效吗?还是会对所有子组件也生效?

trimWhitespace 对当前声明的组件有效

子组件只是当前要使用的组件,trimWhitespace 属性不会影响它们

好的,明白了,谢谢

jingxin2015 avatar Oct 31 '24 05:10 jingxin2015