同一个父目录下有两个自定义组件,而这两个自定义组件的代码又各放在一个独立目录中,为其声明了 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 获取到对方。
使用最新开发者工具,最新的调试基础库(换了几个版本的基础库也是同样的问题)。
我们给自定义组件相关章节新加了示例代码片段,有需要的话可以去文档查询(点其中的“在开发者工具中预览效果”即可)。
你好,你对 relations 的理解不对。 relations 用于处理父/子节点的关系(类似基础组件中 checkbox-group 和 checkbox),而不是组件/组件使用者的关系。处理组件/组件使用者的关系时,应使用事件系统。请仔细阅读文档。
你好,请给一下引用这两个自定义组件的wxml代码?
写法都没错,但是用法错了
<component_a>
<component_b></component_b>
</component_a>
只有页面上用这种方式引用组件,才满足 parent/child、ancestor/descendant 的定义
同样的问题,不知道怎么解决......
我也想二次封装一个组件,也是同样的写法,试了好久都没效果,结果官方说我们理解不对,唉。
我也想二次组装一个组件,请问问题有解决吗?
这是 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