微信小程序事件處理函數參數問題


初學小程序,不足的地方或者錯誤的地方請指正,謝謝。

 

背景:在學習小程序開發時,想獲取列表渲染中的index值,因為在學習vue時可以給事件處理函數傳入參數,想用同樣的方法在小程序上應用,發現在catchtap='onPostTap(1)',傳入參數在調用onPostTap時會報Component "pages/posts/posts" does not have a method "onPostTap(1)" to handle event "tap".的錯誤。

查閱文檔發現

  • 在相應的Page定義中寫上相應的事件處理函數,參數是event。
  • Page({
      onPostTap: function(event) {
        console.log(event)
      }
    })
  • 打印出來的event                                                                                                                        

 

最終使用自定義屬性的方法獲取到相應的index,具體代碼如下:

wxml部分

 
         
<block wx:for="{{postKey}}" wx:key="{{index}}">
  <
view catchtap='onPostTap' data-index="{{index}}">     <template is="postItem" data="{{...item}}"/>   </view>
</block>

js部分

Page({
  data: {

  },
  onPostTap: function(event) {
  var index = event.currentTarget.dataset.index
    console.log(index) // 打印出相應的index
    //測試其他回調函數的參數問題
    var a = this.fn(6)
    console.log(a) // 6
  },
  fn: function(n) {
    return n
  }
})

結論:小程序中事件處理函數的參數就是event,不能傳入其他參數。


免責聲明!

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



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