Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Closed
jingxin2015 opened this issue May 24, 2024 · 6 comments

Comments

@jingxin2015
Copy link

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

@jingxin2015
Copy link
Author

jingxin2015 commented Sep 18, 2024

@errorrik 有没有什么办法呀?

@errorrik
Copy link
Contributor

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

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

@jingxin2015
Copy link
Author

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

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

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

@jingxin2015
Copy link
Author

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

@errorrik
Copy link
Contributor

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

trimWhitespace 对当前声明的组件有效

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

@jingxin2015
Copy link
Author

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

trimWhitespace 对当前声明的组件有效

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

好的,明白了,谢谢

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants