收藏
回答

自定义组件关系声明无效

框架类型 终端类型 微信版本 基础库版本
小程序 工具 开发者工具 1.9.94

同一个父目录下有两个自定义组件,而这两个自定义组件的代码又各放在一个独立目录中,为其声明了 relations 却没有 link 上。


目录结构如下:


-- components

    |-- component_a

        |-- component_a.js

    |-- component_b

        | -- component_b.js


其中 component_a.js 中 relations 定义如下:


relations: {
  '../component_b/component_b': {

    type: 'child',

    linked: function(target) { console.log(target); }

  }
}


component_b.js 中 relations 为:


relations: {
  '../component_a/component_a': {

    type: 'parent',

    linked: function(target) { console.log(target); }

  }
}


两个组件中的 linked 方法均未执行,当然也不能通过 getRelationNodes 获取到对方。


使用最新开发者工具,最新的调试基础库(换了几个版本的基础库也是同样的问题)。

回答关注问题邀请回答
收藏

7 个回答

  • LastLeaf
    LastLeaf
    2018-05-07

    我们给自定义组件相关章节新加了示例代码片段,有需要的话可以去文档查询(点其中的“在开发者工具中预览效果”即可)。

    2018-05-07
    有用
    回复
  • LastLeaf
    LastLeaf
    2018-03-27

    你好,你对 relations 的理解不对。 relations 用于处理父/子节点的关系(类似基础组件中 checkbox-group 和 checkbox),而不是组件/组件使用者的关系。处理组件/组件使用者的关系时,应使用事件系统。请仔细阅读文档。


    2018-03-27
    有用
    回复
  • LastLeaf
    LastLeaf
    2018-03-26

    你好,请给一下引用这两个自定义组件的wxml代码?

    2018-03-26
    有用
    回复
  • 2018-09-05

    写法都没错,但是用法错了

    <component_a>

    <component_b></component_b>

    </component_a>

    只有页面上用这种方式引用组件,才满足 parent/child、ancestor/descendant 的定义


    2018-09-05
    有用
    回复 1
    • 阿辉
      阿辉
      2020-02-17
      请问这个有官方文档的参考吗?
      2020-02-17
      回复
  • 远山
    远山
    2018-05-06

    同样的问题,不知道怎么解决......

    2018-05-06
    有用
    回复
  • 2018-05-02

    我也想二次封装一个组件,也是同样的写法,试了好久都没效果,结果官方说我们理解不对,唉。

    2018-05-02
    有用
    回复 2
    • 游哉
      游哉
      2018-07-19

      我也想二次组装一个组件,请问问题有解决吗?

      2018-07-19
      回复
    • 阿辉
      阿辉
      2020-02-17
      请问你这个解决了吗,现在?
      2020-02-17
      回复
  • Heroic Yang
    Heroic Yang
    2018-03-27

    这是 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

    2018-03-27
    有用
    回复
登录 后发表内容