收藏
回答

小程序自定义组件获取wxml节点问题

昨天到现在一直遇到获取wxml节点为空的问题, 具体实现为一个index页面添加一个子组件, 然后在组件中调用wx.createSelectorQuery().select('xxx').boundingClientRect(function(rect){

    console.log(rect)

}).exec(res=>{

    console,log(res)

})

结果一直未空, 有谁遇到过么?


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

6 个回答

  • LastLeaf
    LastLeaf
    2017-12-18

    请阅读文档的 SelectorQuery.in 部分。

    2017-12-18
    有用 1
    回复
  • LastLeaf
    LastLeaf
    2017-12-18

    你好,这个API在引入自定义组件后有点变化,即调用的时候不会跨组件查找节点。详情请查询文档。

    2017-12-18
    有用
    回复 6
    • 何处~归去^_?
      何处~归去^_?
      2018-08-18

      但确实有跨组价获取的需求, 如何解决的呢?

      2018-08-18
      回复
    • LastLeaf
      LastLeaf
      2018-08-20回复何处~归去^_?

      你好,这里并不是说不能跨组件,而是默认不会跨组件。如果需要,请使用跨组件后代选择器:


      • 跨自定义组件的后代选择器:.the-ancestor >>> .the-descendant

      2018-08-20
      1
      回复
    • Allen
      Allen
      2018-12-18

      我跨子组件节点查到了,但是top,left这些值一直是0是什么原因?dataset设的值都能正常拿到

      2018-12-18
      回复
    • LastLeaf
      LastLeaf
      2018-12-18回复Allen

      大多是这个节点或者父节点有 hidden 或者 display:none 之类的,这种情况下会返 0

      2018-12-18
      回复
    • Allen
      Allen
      2018-12-18回复LastLeaf

      确实是,我刚也发现了,谢谢大佬,已经解决了

      2018-12-18
      回复
    查看更多(1)
  • Benes
    Benes
    2018-01-13

    用this,组件里不要用wx

    2018-01-13
    有用 2
    回复
  • Allen
    Allen
    2018-12-18

    我跨子组件节点查到了,但是top,left这些值一直是0是什么原因?dataset设的值都能正常拿到

    2018-12-18
    有用
    回复
  • CallMeSoul
    CallMeSoul
    2018-01-19

    @5楼

    var query =wx.createSelectorQuery().in(this);
          query.selectAll('.wepy-like').boundingClientRect((rects)=>{
            debugger;
            this.wepyLikeHeight=rects[0].height;
          }).exec()

    没效果进不去

    2018-01-19
    有用
    回复 1
    • Allen
      Allen
      2018-12-18

      我跨子组件节点查到了,但是top,left这些值一直是0是什么原因?dataset设的值都能正常拿到

      2018-12-18
      回复
  • 小灿👻
    小灿👻
    2017-12-18

    我并没有跨组件调用节点 我在组件内部调用自己的节点 为空


    2017-12-18
    有用
    回复 2
    • O
      O
      2019-08-10
      我也遇到在组件中调用这个 API 返回为空 你的问题解决了没有
      2019-08-10
      1
      回复
    • 弦
      2021-08-26
      2021-08-26
      回复
登录 后发表内容