两个自定义组件产生关联必须要像下面的结构吗
<custom-ul> <custom-li> item 1 </custom-li>
<custom-li> item 2 </custom-li>
</custom-ul>
像简单的单选框/多选框采用这样的结构没什么问题,但有时候会出现子组件作为另外一个组件的slot。这个时候结构就变了
<custom-ul>
<other-com>
<custom-li> item 1 </custom-li>
</other-com>
<other-com>
<custom-li> item 2 </custom-li>
</other-com>
</custom-ul>
这样的结构是relations无法生效的。是不是这种设计组件的思想不对。请指正。
还是应该将结构改成这样
<custom-ul>
<custom-li>
<other-com></other-com>
</custom-li>
<custom-li>
<other-com></other-com>
</custom-li>
</custom-ul>
relations 的 type 可选值有四个: parent / child / ancestor / descendant 。前两个表示父子节点关系;后两个表示祖先后代节点关系。你的情况选后两个就可以了。
relations 产生链接后,linked 函数 得到的target 只有组件的一些简单函数,没有自己写在组件的自定义函数。
准确来说写在method的方法都得不到,但好像直接写在外面的方法能得到。
是不是父子组件,父组件想调用子组件的内部方法不用采用relations的方式调用,只能根据id获取到子组件才能调用
通过 relations 取到的 this 就是对应目标节点的 this ,不会有 method 拿不到的情况。请再确认一下。
selectComponent 取 id 的方法是无法取到节点的子孙节点的,它只能取到组件 WXML 内部的节点。
看到控制台没输出,我以为取不到,后面试了下还是能取到的
组件的通用方法和自身方法是在原型链的不同位置上的,看控制台其实比较容易看错。
relations 产生连接时,能不能取得到子组件的offset。就是点击事件产生的
类似这种