在组件MyComp1中声明@State message=‘MyComp1’,@BuilderParam slot,在build()中渲染为this.slot()。
在页面中定义@State message=‘Hello World’,定义@Builder MySlot,并在MySlot添加点击事件展示页面的this.messge。
在页面build中调用MyComp1({ slot: this.MySlot })渲染到页面。
点击页面MySlot部分,展示的不是预期的’Hello World’,而是’MyComp1’。
目测是MyComp1中this.slot()调用导致this上下文转移。
使用MyComp1({ slot: this.MySlot.bind(this) })可锁定this指向,解决此问题,实测有效,但IDE如下提示:
“Function.bind” is not supported (arkts-no-func-bind) <ArkTSCheck\>
如果后续不支持Function.bind,希望给出此类场景的解决方案。
请参考示例: