大佬们@requireComponent能否实现 或 的关系?

image
这样写只能绑死Label,而我想绑定Label或者RichText,应该怎么实现?

直接绑定Node,再加个类型来区分

能不能写两次

没懂啥意思绑了Node,又在那里加类型呢?

requirecomponent其实是方便你不用手动添加两次吧,或 没有任何意义,如果有强绑定的需求是在代码里检测了

Label || RichText 最后的值就是 Label,也就是这样传进去的参数就是 Label
requireComponent 还会在没有对应组件的时候自动创建一个

你描述的功能实现当然是可以实现的,不过只能你自己写一个装饰器了。
可以最终使用的时候像是这样
requireComponents(Label, RichText)
按照顺序查找组件,找到就用,都找不到也可以自定义是创建一个组件还是什么都不做

1赞

自己写个装饰器,也可以实现自动require需要的组件,这样你就可以用或的关系了

我们是分别继承label richtext 扩展了一下,或者直接拿源码重写 i18nLabel

@requireComponent(Sprite)
@requireComponent(Label)
这样应该是可以的吧

我印象中,你在编辑器里,插入一个render组件了,再插入另一个render组件会报错吧,所以你require两个肯定是不成立的