同一个父目录下有两个自定义组件,而这两个自定义组件的代码又各放在一个独立目录中,为其声明了 relations 却没有 link 上。
目录结构如下:
-- components
|-- component_a
|-- component_a.js
|-- component_b
| -- component_b.js
其中 component_a.js 中 relations 定义如下:
relations: { '../component_b/component_b' : {
} } |
component_b.js 中 relations 为:
relations: { '../component_a/component_a' : {
} } |
两个组件中的 linked 方法均未执行,当然也不能通过 getRelationNodes 获取到对方。
使用最新开发者工具,最新的调试基础库(换了几个版本的基础库也是同样的问题)。
写法都没错,但是用法错了
<component_a>
<component_b></component_b>
</component_a>
只有页面上用这种方式引用组件,才满足 parent/child、ancestor/descendant 的定义
你好,你对 relations 的理解不对。 relations 用于处理父/子节点的关系(类似基础组件中 checkbox-group 和 checkbox),而不是组件/组件使用者的关系。处理组件/组件使用者的关系时,应使用事件系统。请仔细阅读文档。
这是 component_a.wxml:
< view wx:for = "{{ fields }}" wx:key = "id" > < component-b field-type = "{{ item.type }}" ></ component-b > </ view > |
这是 component_b.wxml:
< view > {{ fieldType }} </ view > |
PS: 我在提问之前也发现有另外一位同学有相同的问题哈,这是相应的链接:https://developers.weixin.qq.com/blogdetail?action=get_post_info&lang=zh_CN&token=481460654&docid=0008e4530ec9d8929f76dd14756400&comment_lvl=1