收藏
回答

如何在自定义组件中使用 this.createSelectorQuery 查找 slot 内的节点?

如题,我有一个list自定义组件,里面有一个slot:

// components/dt-list/index.wxml
<view class="dt-list">
  <slot />  
</view>


在page中调用这个list组件:

// pages/index/index.wxml
<view class="my-page">
  <dt-list>
    <dt-item><dt-item>
  </dt-list>
</view>


这是item组件:

// components/dt-item/index.wxml
<view class="dt-item">this is dt-item component</view>


我在list组件中无法通过 SelectorQuery 查询到这个 slot 里面的 .dt-item:

// components/dt-list/index.js
Component({
  ready: function() {
    const query = this.createSelectorQuery();
    query.select('.dt-list >>> .dt-item')
      .boundingClientRect()
      .exec(([ret]) => {
        console.log('how to find `dt-item` in this query', ret);
        // how to find `dt-test` in this qury null
      });
  }
})


请问我应该如何做?

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

2 个回答

  • 微盟
    微盟
    2022-11-03
    class 需要加在自定义组件上select  所以你需要在list组件外部 通过 SelectorQuery 
    
    2022-11-03
    有用
    回复 1
    • 晴霄
      晴霄
      2022-11-03
      我是不是可以理解成:item是在page里调用的,所以SelectorQuery 只能在page里找到它。
      2022-11-03
      回复
  • Shmily
    Shmily
    2022-11-03

    用wx.nextTick试试?

    2022-11-03
    有用
    回复
登录 后发表内容