小程序中使用components方法selectComponent遇到的坑 返回為null


前言:哎呦氣死了,小程序等着發布審核得時候 發現了一個bug,selectComponent獲取不到組件了,返回值一直為null

原因居然是因為 wx:if  , 代碼如下,無論if是true還是false  都獲取不到組件,去掉wx:if 就可以了  記錄一下  希望大家可以避開,網上百度了一下,很少這個問題得記錄。

<view class="address" hover-class="none" hover-stop-propagation="false" wx:if="{{detailData.status == 'ONLINE'}}">
  <span class="van-row-label">送至</span>
   <span class="address-info" bindtap="selectAddress">{{addressValue === '' ? '請選擇收貨地址+' : addressValue}}</span>
  <selectAddress id="selectAddress-modal" bind:getSelectedAddress="getSelectedAddress"></selectAddress>
</view>

那就順便記錄一下,如何獲取組件吧。

  1. json 文件中引入了該組件
{
  "usingComponents": {
  "selectAddress":"../../../components/selectAddress/selectAddress"
  }
}


  1. 父組件 wxml 文件中使用了這個組件並且設置了一個 id 或者是 class 類樣式   (我下面都是用id  class也是一樣的和樣式命名方式一樣)
  <selectAddress id="selectAddress-modal"></selectAddress>
  1. 父組件 js 文件中傳遞了正確的選擇器獲取子組件對象

  

    Page({
        onReady(){  //onReady或者 onLoad里面先取值都是可以的
            // (大坑)切記下面參數不能傳遞標簽選擇器(selectAddress),不然返回的同樣是 null 
           this.selectAddressModal = this.selectComponent("#selectAddress-modal"); 
        }
    })

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM